gpt4 book ai didi

asp.net - 停止标签生成器转义单引号 ASP.NET MVC 2

转载 作者:行者123 更新时间:2023-12-03 14:47:25 24 4
gpt4 key购买 nike

我有以下 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();
}

问题是创建 onclick 处理程序的行被 tagbuilder 转义,生成的 html 是:
<input class="button" onclick="javascript:location.href=&#39;&#39;" type="submit" value="Return to All Audits" />

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

最佳答案

这实际上是 .NET 4.0 的一个问题。要修复它,您需要覆盖属性编码过程。

public class HtmlAttributeNoEncoding : System.Web.Util.HttpEncoder
{
protected override void HtmlAttributeEncode(string value, System.IO.TextWriter output)
{
output.Write(value);
}
}

然后把它放在你的 web.config 文件中 <system.web> 下元素:
<httpRuntime encoderType="HtmlAttributeNoEncoding"/>

我找到了这个 here .

关于asp.net - 停止标签生成器转义单引号 ASP.NET MVC 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3924861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com