Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在asp.net mvc中将对象传递给用户控件ViewModel_C#_Asp.net Mvc - Fatal编程技术网

C# 在asp.net mvc中将对象传递给用户控件ViewModel

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); %>

我有一个使用特定ViewModel的视图

viewModel具有各种对象,例如Foo、Bar等

我有一个用户控件,它有自己的ViewModel,其中包含一个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方法中的第二个参数传递。