C# 在asp.net mvc中将对象传递给用户控件ViewModel
我有一个使用特定ViewModel的视图 viewModel具有各种对象,例如Foo、Bar等 我有一个用户控件,它有自己的ViewModel,其中包含一个Foo对象C# 在asp.net mvc中将对象传递给用户控件ViewModel,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个使用特定ViewModel的视图 viewModel具有各种对象,例如Foo、Bar等 我有一个用户控件,它有自己的ViewModel,其中包含一个Foo对象 如何将Foo对象从页面视图传递到usercontrols ViewModel 你在找这个吗: <% Html.RenderPartial("partial", Model.Foo); %> 如果您这样做: <% Html.RenderPartial("partial", Model.Foo); %>
如何将Foo对象从页面视图传递到usercontrols ViewModel 你在找这个吗:
<% Html.RenderPartial("partial", Model.Foo); %>
如果您这样做:
<% Html.RenderPartial("partial", Model.Foo); %>
然后会发生两件事中的一件
Model.Foo
为非-null,则用户控件的Model
将等于视图的Model.Foo
,用户控件的Model.Foo
将是视图的Model.Foo
Model.Foo
为null,则用户控件的Model
将等于视图的Model
,而用户控件的Model.Foo
将是视图的Model.Foo
。如果视图的Model
和Model.Foo
不是同一类型,并且视图的Model
非空,并且如果UserControl使用强类型视图数据,那么您将得到运行时错误,因为UserControl的模型现在是TViewModel
类型,而不是TUserControlModel
用户控件是否足够聪明,使其自身的Foo对象与此处传递的对象相等?视图和用户控件具有不同的ViewModels,它们都包含一个Foo,通过将Foo作为usercontrol视图模型的构造函数中的一个参数来实现。然后将usercontrol viewmodel的实例作为renderpartial方法中的第二个参数传递。