问题
I cant bind event to @html.editorfor
I've heard it might be connected to presence of "class" attribute but I can see no connection whatsoever.
@Html.EditorFor(model => model.SameAsBaseAddress, new { @onclick = "checkboxcheck()" })
function checkboxcheck() {
//blah...
}
When I debug with firebug and add handler manually all works fine. TextBoxFor, RadioButtonFor etc. have no problems with razor event binding.
What to do?
回答1:
The EditorFor
extension doesn't have an argument htmlAttributes
like the TextBoxFor
, see: http://msdn.microsoft.com/en-us/library/system.web.mvc.html.editorextensions.editorfor%28v=vs.118%29.aspx
I suggest you change EditorFor
to CheckBoxFor, or if you do want to use the EditorFor
, this question suggests to create an editor template.
回答2:
Modify your EditorFor to use the following instead. I've used this to add html attributes (including classes and onclick) to an EditorFor which generates a checkbox.
@Html.EditorFor(model => model.SameAsBaseAddress, new { htmlAttributes = new { @onclick = "checkboxcheck()" } })
You can add more attributes as a comma separated list:
@Html.EditorFor(model => model.SameAsBaseAddress, new { htmlAttributes = new { @onclick = "checkboxcheck()", @class = "checkbox" } })
来源:https://stackoverflow.com/questions/20700734/razor-editorfor-checkbox-event-binding