ASP.NET MVC传递强类型数据到母版页

6
2个回答

8
您可以创建一个所有模型都继承的基类:
class MasterModel {
     // common info, used in master page.
}

class Page1Model : MasterModel {
     // page 1 model
}

然后你的主页面将继承自 ViewMasterPage<MasterModel>,而你的 Page1.aspx 将继承自 ViewPage<Page1Model> 并将 Site.master 设置为其主页面。


谢谢,简单易懂的解释!(之前看过但是理解有困难) - orip

2

在我做了一些努力后,这是我的贡献:

class ModelBase {
     // common info, used in master page.
}

class Page1Model : ModelBase {
     // page 1 model
}

public class ControllerBase : Controller
{
    protected override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        var model = ViewData.Model as ModelBase;

        // set common data here

        base.OnActionExecuted(filterContext);
    }
}

这也是我做的方式。此外,如果model不是ModelBase实例,你可以抛出异常,从而确保只有有效的模型被传递给视图。 - Erik Schierboom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接