2016-11-29 2 views
0

У меня есть объект сложной модели, который содержит несколько дочерних объектов, детализирующих состояние страницы, данные и конфигурацию. Дети модели определяются как базовые классы и фактически передаются как экземпляры классов потомков и передаются в визуализируемое представление.MVC 5 Html.LabelFor без использования модели

У меня есть объект модели, который передается ОК, и я могу создавать локальные переменные, которые хранят объекты данных и конфигурации, но теперь я хочу отображать некоторые значения в текстовых полях и их меток.

Здесь переменная создание в представлении:

@model PageBase 
@{ 
    PageConfigPersonal config = (PageConfigPersonal)Model.PageConfig; 
    PageDataPersonal data = (PageDataPersonal)Model.PageData; 
} 

Я не могу понять, каким образом, или если Html.TextBoxFor могут быть использованы с этими локальными переменными - это может быть сделано, и если да, то как ?

Я знаю, что могу нарисовать модель, но это будет действительно громоздким и беспорядочным, поэтому вместо этого нужно использовать локальную переменную.

Гордон

ответ

0

все еще вы можете использовать локальную переменную для TextBoxFor, как показано ниже,

@Html.TextBoxFor(m => config.<model variable name>) 
+1

Я не думаю, что это правильно, как лямбда-выражение должно возвращать свойство внутри модели, 'config' is not –

+0

Я могу подтвердить, что использование m => data.Name приводит к элементу управления с идентификатором «config.Name», который не работает при отправке обратно на сервер. На данный момент я кастую, используя ((PageDataPersonal) m.PageData) .Name, и это работает, хотя это несколько печатать. Я просто искал более простой способ. – OzTrak

Смежные вопросы