防止javascript编码分配给Html的onchange事件.TextBoxFor通过html属性

本文关键字:TextBoxFor 事件 通过 html 属性 onchange 编码 javascript 分配 Html 防止 | 更新日期: 2023-09-27 18:05:41

我有一个Html。textbox,我想分配一些动态javascript (onchange事件具体):

@Html.TextBoxFor(model => answer.Value, new { @class = "answerswerinput", @onchange = "submitAnswer('"" + Model.QuestionID.ToString() + "'")" });

但是,当我检查结果HTML时,传入javascript函数的值周围的引号被编码,这是一个问题:

onchange="submitAnswer("3")"

我尝试了一些事情,比如将字符串放入IHtmlString,然后在赋值中使用IHtmlString,但结果总是相同的。

是否有办法防止MVC从编码分配给@onchange的值?

谢谢!

防止javascript编码分配给Html的onchange事件.TextBoxFor通过html属性

或者,您应该更改事件的附加方式:

Html.TextBoxFor(x => x.SomeProperty, new { rel = Model.QuestionID, @class = "SomeClass" });

然后在javascript中,附加到事件:

$('.SomeClass').each(function()
{
     $(this).change(function()
     {
          var questionId = $(this).attr('rel');
     });
});

尝试使用单引号,不需要转义字符

@Html.TextBoxFor(model => answer.Value, new { @class = "answerswerinput", @onchange = "submitAnswer('" + Model.QuestionID.ToString() + "')" });