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
Asp.net mvc 在asp.net mvc中将数据从控制器返回到视图_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 在asp.net mvc中将数据从控制器返回到视图

Asp.net mvc 在asp.net mvc中将数据从控制器返回到视图,asp.net-mvc,Asp.net Mvc,是否可以在asp.net mvc中将复杂类型从控制器返回到视图?到目前为止,我看到的所有示例都演示了传递简单的内在类型,如int、string 可以使用ViewData字典将任何对象类型传递给视图 只需放入控制器: ViewData["example"] = (YourObject)data; 在你看来: <%= ((YourObject)ViewData["example"]).YourProperty %> 并确保您的视图如下所示: <%@ Page Title=""

是否可以在asp.net mvc中将复杂类型从控制器返回到视图?到目前为止,我看到的所有示例都演示了传递简单的内在类型,如int、string

可以使用ViewData字典将任何对象类型传递给视图

只需放入控制器:

ViewData["example"] = (YourObject)data;
在你看来:

<%= ((YourObject)ViewData["example"]).YourProperty %>
并确保您的视图如下所示:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<YourObject>" %>

您可以使用ViewData字典将任何对象类型传递给视图

只需放入控制器:

ViewData["example"] = (YourObject)data;
在你看来:

<%= ((YourObject)ViewData["example"]).YourProperty %>
并确保您的视图如下所示:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<YourObject>" %>

为页面使用ViewModel

可以使用同时包含复杂对象和简单对象的视图模型,例如:

public class MyComplexViewModel
{
    public Address UserAddress { get; set;}
    public List<string> ValidZipCodes { get; set; }
    public string Message { get; set; }
}
公共类MyComplexViewModel
{
公共地址用户地址{get;set;}
公共列表有效码{get;set;}
公共字符串消息{get;set;}
}
如果您的视图继承了具有以下内容的通用ViewPage

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyComplexViewModel>" %>

然后,您可以在视图中使用视图模型作为模型:

<%= Html.Encode(Model.UserAddress.SomeAddressProperty) %>
<%= Html.Encode(Model.ValidZipCodes.Count) %>
<%= Html.Encode(Model.Message) %>

为页面使用ViewModel

可以使用同时包含复杂对象和简单对象的视图模型,例如:

public class MyComplexViewModel
{
    public Address UserAddress { get; set;}
    public List<string> ValidZipCodes { get; set; }
    public string Message { get; set; }
}
公共类MyComplexViewModel
{
公共地址用户地址{get;set;}
公共列表有效码{get;set;}
公共字符串消息{get;set;}
}
如果您的视图继承了具有以下内容的通用ViewPage

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyComplexViewModel>" %>

然后,您可以在视图中使用视图模型作为模型:

<%= Html.Encode(Model.UserAddress.SomeAddressProperty) %>
<%= Html.Encode(Model.ValidZipCodes.Count) %>
<%= Html.Encode(Model.Message) %>


您可以创建一个viewmodel,然后在强类型视图中使用它。你可以看看这个解释。我一开始只是在viewdata中转储内容,但这很快就会让人困惑;)

您可以创建一个viewmodel,然后在强类型视图中使用它。你可以看看这个解释。我一开始只是在viewdata中转储内容,但这很快就会让人困惑;)

当视图中已经存在YourObject作为模型时,为什么要使用ViewData?我想说的是,他可以使用ViewData传递对象,也可以直接作为视图模型传递对象。我承认我的回答很差。为什么要在视图中已经存在YourObject作为模型时使用ViewData?我想说的是,他可以使用ViewData传递对象,也可以直接作为视图模型传递对象。我承认我的回答很差。