ASP.NET MVC EditorFor自定义javascript

jos*_*ezc 2 javascript asp.net-mvc-2

以下声明:

<%= Html.EditorFor(model => model.Material.Serial) %>
Run Code Online (Sandbox Code Playgroud)

生成以下代码;

<div class="editor-field">  
    <input type="text" value="" name="Material.Serial" id="Material_Serial" class="input-validation-error">  
    <span id="Material_Serial_validationMessage" class="field-validation-error">Debe ingresar un serial</span>  
</div>
Run Code Online (Sandbox Code Playgroud)

我想onkeypress通过EditorFor语句向我的输入添加一个javascript属性,我试图做以下事情:

<%= Html.EditorFor(model => model.Material.Serial, new{ onkeypress = "return disableEnterKey(event)"})%>
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

aut*_*gic 8

很难将附加属性传递给EditorFor模板,但也可以使用jQuery或类似的东西实现相同的功能:

$('#Material_Serial').keypress(function(event) {

  disableEnterKey(event);

});
Run Code Online (Sandbox Code Playgroud)


gur*_*ews 5

使用以下.... 注意代码中的最后一部分。

@Html.EditorFor(model => model.Title, new { htmlAttributes = new { @class = "form-control", @onchange="alert('Hello World')" } })
Run Code Online (Sandbox Code Playgroud)

为上述生成的 HTML 将是

<input class="form-control text-box single-line" data-val="true" data-val-length="The field Title must be a string with a maximum length of 255." data-val-length-max="255" data-val-required="The Title field is required." id="Title" name="Title" onchange="alert(&#39;Hello World&#39;)" type="text" value="" />
Run Code Online (Sandbox Code Playgroud)