MVC3更强类型的Model Class

时间:2012-06-28 23:09:13

标签: asp.net-mvc-3

我是MVC3的新手。当我创建一个强类型视图时,它在视图代码文件的顶部使用此代码

@model MonoPoly.Models.LandDocument

所以这意味着视图可以使用该Model类中的所有属性(此处为LandDocument模型类)。但我的问题是如何将更多模型类用作此单个视图文件的强类型?或者如何在此视图中调用其他模型类属性,该属性已经使用该LandDocument Model类强类型化?

抱歉我的英语不好。

2 个答案:

答案 0 :(得分:4)

一种方法是创建一个ViewModel对象,其中包含您要在视图中引用的所有对象。请参阅有关如何在Steve Michelotti's blog: Pattern 2 – Dedicated view model that contains the domain model object

上实现ViewModel模式的详细信息

例如,如果您同时需要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; }
}