In the EditorTemplates, I have a Template which accepts and Model of Type List<string>
. This should create an Textbox for each string in the list.
In the Model, the Property has the [UIHint("EditList")]
. Now when I render it to the Page, the Template is called correctly, but the index is set wrong. When I submit the form I get:
MyList.[0]:test123
Instead of
MyList[0]:test123
I'm using MVC 3!, the same code workd in my test project which uses MVC 5
View:
<div class="col-md-10">
@Html.EditorFor(model => model.MyList)
@Html.ValidationMessageFor(model => model.MyList)
</div>
Model:
public class FormTest
{
[UIHint("EditListWithAddButton")]
public List<string> MyList { get; set; }
}
EditorForTemplate:
@model List<string>
<div class="EditListWithAddButton">
<ul>
@for (int i = 0; i < Model.Count(); i++)
{
<li>@Html.EditorFor(model => Model[i])</li>
}
</ul>
</div>
Brute force solution but, don't have the time to debug it any futher...
this replaces the Editfortempalt in away, that the index is correct again...
If anybody has a better solution / can explain the problem please tell me