2010-02-03 3 views
0

У меня есть вид, который использует конкретную ViewModel.передать объект пользователю Элементы управления ViewModel в asp.net mvc

ViewModel имеет различные объекты, например. Foo, Bar ... etc

У меня есть пользовательский элемент управления, который имеет свой собственный ViewModel, который содержит объект Foo.

Как передать объект Foo со страницы View to usercontrols ViewModel?

ответ

0

Вы ищете это:

<% Html.RenderPartial("partial", Model.Foo); %> 
+0

- пользовательский контроль, достаточно умный, чтобы сделать свой собственный объект Foo равным пройденному здесь? View и пользовательский элемент управления имеют разные ViewModels, которые содержат Foo – raklos

1

Если вы сделаете это:

<% Html.RenderPartial("partial", Model.Foo); %> 

Тогда одна из двух вещей произойдет.

  1. Если View-х Model.Foo является не -null, то UserControl-х Model будет равен вид по Model.Foo и UserControl-х Model.Foo будет View-х Model.Foo.Foo.
  2. * Если представление в Model.Foo является нулевого, то UserControl-х Model будет равен вид по Model и UserControl-х Model.Foo будет View-х Model.Foo. Если View Model и Model.Foo не являются одним и тем же типом, а View Model не является нулевым, и если UserControl использует строго типизированные данные просмотра, тогда вы получите ошибку времени выполнения, так как модель UserControl теперь имеет тип TViewModel вместо TUserControlModel.
+0

. Я получил его работу, имея Foo в качестве параметра в конструкторе модели просмотра usercontrol. затем передают экземпляр модели viewcontrol usercontrol в качестве второго параметра метода renderpartial. – raklos

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