Создание помощников HTML без кодирования

Я пытаюсь создать HTML-помощник для отображения кнопки. В качестве примера это должно содержать -

<button onClick="window.location='/Users/Edit/admin'">

Я пытался сделать это с помощью TagBuilder, но у меня возникли проблемы, потому что MergeAttribute кодирует HTML.

например

buttonBuilder.MergeAttribute("onClick", "window.location='" + url.Action(action, controller, routeValues));

дает мне -

<button onClick="window.location=&#39;/Users/Edit/admin">

Есть ли способ сделать это, чтобы он не был закодирован? Или я должен использовать другой метод, кроме TagBuilder?

1 ответ

Решение

--EDITED

Я почти забыл, используйте HtmlDecode:

public static class ButtonHelper
{
    public static IHtmlString Button(this HtmlHelper html)
    {
        TagBuilder button = new TagBuilder("button");
        button.MergeAttribute("onClick", "window.location='/Users/Edit/admin'");

        return new HtmlString(System.Web.HttpUtility.HtmlDecode(button.ToString()));
    }
}

Или посмотрите это: http://forums.asp.net/t/1377957.aspx/1

Другие вопросы по тегам