Я сейчас реорганизую рефакторинг своей кодовой базы MVC2, чтобы использовать подход ViewModel против.В результате модели, которые я передаю в мои представления для визуализации форм, теперь выглядят как
model.TheObject
model.TheCollectionOfOtherObjects
Я пытаюсь использовать помощник HTML.EditorFor для визуализации редактора шаблонов для типа данных.Раньше он работал, когда я пытался визуализировать TheObject непосредственно в представлении, теперь, когда есть уровень косвенности, я получаю совершенно другую схему именования объектов по умолчанию:
Например:
Перед рефакторингом в ViewModel я выводил специальный сборщик дат на основе JQuery:
<%: Html.EditorFor(model => model.StartDate, String.Format("{0:M/d/yyyy}", Model.StartDate))%>
Вывод:
<input id="StartDate" name="StartDate" type="text" value="7/5/2010 11:10:25 AM" />
На земле JQuery все было хорошо.
Затем я изменил представление, чтобы использовать ViewModel, который содержал TheObject, и изменил мой код EditorFor на следующий:
<%: Html.EditorFor(model => model.TheObject.StartDate, String.Format("{0:M/d/yyyy}", Model.TheObject.StartDate))%>
Теперь отображает следующий HTML-код:
<input id="TheObject_StartDate" name="TheObject.StartDate" type="text" value="7/5/2010 11:10:25 AM" />
Это, естественно,ломает мой JQuery на стороне клиента, и я предпочел бы иметь больший контроль над выводом атрибутов id и name в элементе html.
Любые идеи о том, как изменить это выражение лямбы, которое я передаю в EditorFor
Спасибо