ASP.NET MVC 2 точки заменены на знак подчеркивания в имени элемента - PullRequest
3 голосов
/ 04 марта 2010

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!

Любая помощь приветствуется!

1 Ответ

6 голосов
/ 04 марта 2010
<%= Html.DropDownList(
    "Contact.Title",
    new SelectList(Model.Titles, "Key", "Value"))%>

Это сделает:

<select id="Contact_Title" name="Contact.Title">...

Он заменяет только точку в идентификаторе, поскольку он недопустим в xhtml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...