我正试图加入Google Analytics并拥有以下内容:
@using (Html.BeginForm("Register", "Account", FormMethod.Post,
new { id = "account-register-form",
onsubmit = "_gaq.push(['_link', 'someurl'])" }))
我呈现的视图看起来像这样:
<form action="/Account/Register/Basic" id="account-register-form" method="post"
onsubmit="_gaq.push(['_link', 'someurl'])">
我已经尝试过Html.Raw(“_ gaq.push(['_ link','someurl'])”)但这不起作用,因为我认为BeginForm会进行编码。
答案 0 :(得分:2)
代码工作正常但您可以通过创建这样的类来关闭属性编码:
public class HtmlAttributeEncodingNot : System.Web.Util.HttpEncoder
{
protected override void HtmlAttributeEncode(string value, System.IO.TextWriter output)
{
output.Write(value);
}
}
并将其添加到web.config下:
<httpRuntime encoderType="HtmlAttributeEncodingNot"/>
答案 1 :(得分:1)
如果您不必使用Html.BeginForm
,那么使用可以使用下面的代码段来解决您的格式问题。
<form action="@Url.Action("Register", "Account")"
method="POST" id="account-register-form"
onsubmit="_gaq.push(['_link', 'someurl'])">
</form>
这会输出您需要的HTML。
答案 2 :(得分:1)
您无需取消代码任何内容。你拥有的是完全有效的标记和工作javascript,如下面的live demo所示:
<form action="#" method="get" onsubmit="alert('some test');">
<input type="submit" value="OK" />
</form>
所以保持你的代码不变。