I have looked through some various answers related to this but all were for mvc3 or not for Razor.
I have a single page that has multiple forms, in partial views, th
Change your helper from EditorFor
to TextBoxFor
the EditorFor, doesn't have a overload to override html properties
Change this
@Html.EditorFor(model => model.Name, new {id = "PersonName"})
To this
@Html.TextBoxFor(model => model.Name, new {id = "PersonName"})
Based on bob's comment :
EditorFor @Html.EditorFor(model => model.FieldName, new { htmlAttributes = new { id = "myuniqueid"} })
Credits to Bob.
I realise this is somewhat late but I just ran into this problem myself... I thought "there has to be a way to use the EditorFor and still override the ID"... there is. Do the following and your input has an ID and Name of whatever you like.
@Html.EditorFor(model => model.myField, null, "txtMyField")
Hope this helps and hope it helps other people too.
Note: from what I understand, the reason this is typically not done is to avoid other, dynamically created controls ID's and Names from conflicting.
Alternatively you can add htmlAttributes
@Html.EditorFor(Model => Model.myField, new { htmlAttributes = new { @class = "form-control", @id = "txtMyField" } })