Asp.net mvc 在asp.net mvc中将数据从控制器返回到视图
是否可以在asp.net mvc中将复杂类型从控制器返回到视图?到目前为止,我看到的所有示例都演示了传递简单的内在类型,如int、string 可以使用ViewData字典将任何对象类型传递给视图 只需放入控制器: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=""
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传递对象,也可以直接作为视图模型传递对象。我承认我的回答很差。