asp.net-mvc - ASP.NET MVC - 母版页和 View 页的不同模型

标签 asp.net-mvc master-pages viewmodel

我有一个强类型母版页,但我想为它的某些子页面使用不同的类型。

例如,在母版页上...

<%@ Master ... Inherits="System.Web.Mvc.ViewMasterPage<MyWeb.Models.Client>" %>

Client 已经是一个复合对象,所以在一些子页面上我可以保持相同的模型并且只引用成员对象。但是在其他页面上,这样做没有意义,因为我正在处理不同的模型,例如,处理客户模型的子页面。

我的母版页仍然需要客户端模型,但 subview 将完全使用不同的模型。问题是,在 Controller 中,您只能将一个对象模型传递给 View 。有没有办法将一个模型传递给主模型,将另一个模型传递给 View ?谢谢!

最佳答案

您可以创建层次结构并将基本模型传递给母版页,将子模型传递给您的 View 。

public class BaseModel
{
}

public class ChildModelOne : BaseModel
{
}

public class ChildModelTwo : BaseModel
{
}

这样,您的主 View 将只能看到它自己的数据(在主模型类中可用),而您的 View 将可以访问子模型类中可用的扩展信息。

很简单。

关于asp.net-mvc - ASP.NET MVC - 母版页和 View 页的不同模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/782077/

相关文章:

javascript - 在 asp.net 母版页中显示 JavaScript 文件路径的 404 状态

asp.net - MasterPage 引用和继承

c# - 如何在 MVC 中检索 URL 值?

asp.net - 运行一次请求最好的地方在哪里?

javascript - 如何在 ajax 调用的 iframe 中加载部分 View ?

c# - ViewModel 将所有 500 多条记录的相同值返回到 View

asp.net-mvc - 在哪里将 DTO 转换为 ViewModel?

asp.net-mvc - MVC网站搜索功能

asp.net - ASP.net 内容 Web 表单是否能够访问其母版页的“代码隐藏”部分中声明的变量?

java - Android 数据绑定(bind)中何时计算表达式?