我是MVC3的新手。当我创建一个强类型视图时,它在视图代码文件的顶部使用此代码
@model MonoPoly.Models.LandDocument
所以这意味着视图可以使用该Model类中的所有属性(此处为LandDocument模型类)。但我的问题是如何将更多模型类用作此单个视图文件的强类型?或者如何在此视图中调用其他模型类属性,该属性已经使用该LandDocument Model类强类型化?
抱歉我的英语不好。
答案 0 :(得分:4)
一种方法是创建一个ViewModel
对象,其中包含您要在视图中引用的所有对象。请参阅有关如何在Steve Michelotti's blog: Pattern 2 – Dedicated view model that contains the domain model object
例如,如果您同时需要LandDocument
课程和Player
课程,则可以像这样创建ViewModel
:
public class BoardViewModel
{
public LandDocument LandDocument { get; set; }
public Player LandOwner { get; set; }
}
然后在您的视图顶部:
@model MonoPoly.ViewModels.BordViewModel
您可以像这样访问视图中的数据,例如:
@Model.LandDocument.LandDocumentId
答案 1 :(得分:0)
创建一个复合View Model类,它封装了您需要的所有对象。
示例:
public class InvoiceViewModel
{
public InvoiceHeader Header { get; set; }
public List<InvoiceDetail> Details { get; set; }
}