繁体   English   中英

MVC一视图和不同模型

[英]MVC one view and different models

仅使用一个视图获取和发布不同模型的更好方法是什么。

例如,我有一组控件,每个控件都有自己的模型。 我想根据条件在一个视图中加载它们。 然后在发布时,我想从该视图中检索值。

有什么更好的做法?

我创建了一个这样的人工模型:

public class CustomerViewData {
    public Customer customer { get; set; }
    public Ticket ticket { get; set; }
    public Decimal price { get; set; }
}

在您的控制器中,调用CustomerViewData并在视图中填充所需的数据:

CustomerViewData.Customer = _customerRepository.GetCustomerById(1);

然后,将CustomerViewData传递到视图。 在您的视图中添加

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyNamespace.Models.CustomerViewData>" %>

现在,您可以调用<%= Model.Customer.Name %>来显示客户的名称(假设您的Customer对象具有Name属性)。

(以上仅是示例,实际内容当然可能更具逻辑性)。

嘿,如果我正确理解了您的问题,请执行以下操作:

为所需的不同模型创建局部视图,以便能够从“主”视图调用它们。 然后,将模型传递到ViewData中,每当需要渲染部分模型时,请执行以下操作:

<%Html.RenderPartial("PartialViewName", ViewData["Model"]);%>

创建一个复合视图模型,将每个单独的模型公开为一个属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM