razor editorfor checkbox event binding

9k Views Asked by At

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?

2

There are 2 best solutions below

0
On BEST ANSWER

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.

0
On

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