“Html.TextAreaFor helper”和“Textarea”html标签之间的区别

时间:2014-09-15 08:46:05

标签: html razor textarea

我想知道有没有什么区别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>

似乎工作得很好。我可以这样做,或者页面安全性有什么不同吗?

2 个答案:

答案 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); }