区别 beetwen "Html.TextAreaFor helper" 和 "Textarea" html 标签



我想知道beetwen"Html.TextAreaFor helper"one_answers"Textarea"Html标签有什么区别吗?。我需要在文本区域添加一个javascript函数"Onkeyup",但当我使用@Html.textarea时,例如:

@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>

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

在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"})

TextAreaFor使绑定到模型数据变得容易。然后它被翻译成html文本区域标记。如果您更改了模型属性的名称,但忘记在视图中进行更改,也会出现编译错误。

向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); }

最新更新