Создание помощников 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='/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