2012-03-01 36 views
2

我想創建一個html助手來呈現一個按鈕。舉個例子,這需要遏制 -無編碼創建html助手

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

我都試過,因爲MergeAttribute被編碼的HTML做到這一點使用TagBuilder但我有問題。

例如

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

給我 -

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

有沒有一種方法,我可以做到這一點,所以它不是編碼?或者我應該使用TagBuilder以外的其他方法?

+0

解決了,看我的新的答案,我幾乎忘了。 =) – 2012-03-01 12:03:43

回答

2

--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

+0

感謝您使用buttonBuilder.MergeAttribute(「onClick」,「window.location =(」+ new JavaScriptSerializer()。Serialize(url.Action(action,controller,routeValues))+「 );「);爲我工作:) – 2012-03-01 12:46:32

+0

所以,我會再次提出答案。 – 2012-03-01 12:50:02

+0

那麼,如果你爲你工作,你可以標記爲答案,這個答案可能會有助於其他用戶。 =) – 2012-03-01 12:53:18