相关疑难解决方法(0)

停止标记生成器转义单引号ASP.NET MVC 2

我有以下HtmlHelper方法,我想创建一个使用JavaScript重定向的按钮:

public static string JavaScriptButton(this HtmlHelper helper, string value,
                        string action, string controller, object routeValues = null, object htmlAttributes = null)
{
    var a = (new UrlHelper(helper.ViewContext.RequestContext))
                            .Action(action, controller, routeValues);

    var builder = new TagBuilder("input");
    builder.Attributes.Add("type", "submit");
    builder.Attributes.Add("value", value);
    builder.Attributes.Add("class", "button");
    builder.Attributes.Add("onclick", string.Format("javascript:location.href='{0}'", a));
    builder.MergeAttributes(new RouteValueDictionary(htmlAttributes));

    return MvcHtmlString.Create(builder.ToString(TagRenderMode.SelfClosing)).ToString();         
}
Run Code Online (Sandbox Code Playgroud)

问题是创建onclick处理程序的行被tagbuilder转义,生成的html是:

<input class="button" onclick="javascript:location.href=&#39;&#39;" type="submit" value="Return to All Audits" />
Run Code Online (Sandbox Code Playgroud)

无论如何我可以阻止这种行为吗?

asp.net asp.net-mvc-2

16
推荐指数
2
解决办法
7104
查看次数

标签 统计

asp.net ×1

asp.net-mvc-2 ×1