我一直在使用此方法将公共数据传递给site.master。但是,这需要特定的ViewData转换,我不喜欢在任何地方使用字符串标识符。这是最好的方式还是另外一种方式?
http://www.asp.net/learn/MVC/tutorial-13-cs.aspx
由于
答案 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);
}
}