ASP.NET MVC 2 точки заменены на знак подчеркивания в имени элемента (хотя ASP.NET MVC по умолчанию ставит точки в атрибут имени!)
Когда вы помещаете элемент в форму в ASP.NET MVC, он обычно делает следующее:
<%= Html.TextBoxFor(model => model.Contact.FirstName)%>
Становится
<input type="text" name="Contact.FirstName" id="Contact_FirstName" ...
Это все хорошо. Однако, если вы хотите сделать это:
<%= Html.DropDownList(
"Contact_Title",
new SelectList(Model.Titles, "Key", "Value"))%>
Вы на самом деле в конечном итоге с
<select id="Contact_Title" name="Contact_Title">...
Обратите внимание, что теперь у вас есть подчеркивание, а не точка в атрибуте имени.
Так что я решил передать имя, включая точку, вот так:
<%= Html.DropDownList(
"Contact_Title",
new SelectList(Model.Titles, "Key", "Value"),
new { name = "Contact\\.Title" })%>
Но он все равно отображается как:
<select id="Contact_Title" name="Contact_Title">...
Я действительно (очень) хочу, чтобы это выглядело как:
<select id="Contact_Title" name="Contact.Title">...
Для того, чтобы это автоматически связывалось с Model.Contact.Title - есть идеи?
ВАЖНОЕ ОБНОВЛЕНИЕ
Это немного отличается от моих первоначальных мыслей ... на самом деле все выглядит так, как я передаю, поскольку атрибут name просто игнорируется ...
new { name = "MYNAME" }
Все еще приводит к Contact_Title!
Любая помощь приветствуется!