Переплетные вопросы новичка MVC. Предположим, у меня есть два строго типизированных частичных действия, которые имеют атрибуты модели с одинаковым именем и отображаются на одной и той же содержащей странице, т.е.
Class Friend {string Name {get; set ;} DateTime DOB {get; set ;}}
Class Foe {string Name {get; set ;} string ReasonForDislike {get; set ;}}
Обе части будут иметь строку:
<%= Html.TextBoxFor(model => model.Name) %>
И связанные действия контроллера:
public ActionResult SaveFriend(Friend friend)
public ActionResult SaveFoe(Foe foe)
Моя проблема в том, что оба будут отображаться на моей содержащей странице с одинаковым идентификатором (конечно, плохо по многим причинам). Мне известен атрибут [Bind], который позволяет мне добавить префикс, в результате чего получается код:
public ActionResult SaveFriend([Bind(Prefix = “friend”)] Friend friend)
<%= Html.TextBox("friend.Name", Model. Name) %> //Boo, no TextBoxFor :(
Но это все еще не сокращает это. Я могу почти смириться с потерей строго типизированных помощников TextBoxFor, но мне еще предстоит получить проверку на стороне клиента для работы с префиксами:
Я пробовал:
<%= Html.ValidationMessage("friend.Name") %>
... и любой другой вариант, который я могу придумать.
Мне нужно, чтобы модель знала о префиксе в обоих направлениях, но привязка применяется только при отображении входящего запроса. Это кажется (для меня) распространенным сценарием, но я изо всех сил пытаюсь найти примеры там. Чего мне не хватает!
Заранее спасибо.