我想知道有没有什么区别beetwen“Html.TextAreaFor helper”和“Textarea”html标签?我需要在textarea上添加一个javascript函数“Onkeyup”,但是当我使用@ Html.TextAreaFor helper时,例如:
@Html.TextAreaFor(model => model.TekstStopka, new { id ="ObiektID", @class = "MyClass", maxlength = "300", onkeyup = "MyFunction('ObiektID', 'SecondObiektID')"})
页面源中的Razer正在将“'”替换为“'”并且功能将无效。但是当我这样做时:
<textarea name="TekstStopka" id="TekstStopka" class = "MyClass" data-val="true" data-val-required="*" maxlength = "300" onkeyup="MyFunction('ObiektID', 'SecondObiektID')">@Model.TekstStopka</textarea>
似乎工作得很好。我可以这样做,或者页面安全性有什么不同吗?
答案 0 :(得分:1)
总是建议在MVC中工作时使用htmlhelpers,试试这个:
String onclick = String.Format("MyFunction({0},{1})", ObiektID,SecondObiektID);
@Html.TextAreaFor(model => model.TekstStopka, new { id ="ObiektID", @class = "MyClass", maxlength = "300", onkeyup = "@onclick"})
答案 1 :(得分:1)
TextAreaFor可以轻松绑定到模型数据。然后它转换为html textarea标签。如果更改模型属性的名称但忘记在视图中更改它,也会出现编译错误。
将参数传递给javascript事件可以通过多种方式实现:
<小时/> 示例1
@Html.TextAreaFor(model => model.Name, new {id = "123" onkeyup = "onkeyupevent('hello', id)" })
示例2
@Html.TextAreaFor(model => model.Name, new {onkeyup = "onkeyupevent('hello', 123)" })
示例3 (使用模型数据)
@Html.TextAreaFor(model => model.Name, new {id = Model.Id, onkeyup = "onkeyupevent('hello', id)" })
示例4 (使用模型数据)
@Html.TextAreaFor(model => model.Name, new {id = Model.Id, onkeyup = "onkeyupevent('hello', " + Model.Id + ")" })
Javascript示例:
function onkeyupevent(a1, a2) {
alert(a1 + ' ' + a1);
}