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

时间:2009-04-02 16:28:29

标签: asp.net-mvc

复制

  

Passing data to Master Page in ASP.NET MVC

     

Should an ASP.NET masterpage get its data from the view ?

我一直在使用此方法将公共数据传递给site.master。但是,这需要特定的ViewData转换,我不喜欢在任何地方使用字符串标识符。这是最好的方式还是另外一种方式?

http://www.asp.net/learn/MVC/tutorial-13-cs.aspx

由于

2 个答案:

答案 0 :(得分:8)

您可以创建所有模型继承自的基类:

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

class Page1Model : MasterModel {
     // page 1 model
}

然后您的母版页将继承ViewMasterPage<MasterModel>,您的Page1.aspx将继承ViewPage<Page1Model>并将Site.master设为其母版页。

答案 1 :(得分: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);
    }
}