我的观点都使用强类型视图模型。
现在在我的控制器操作中,我想设置一个警告文本,该文本将显示在我的site.master文件中。
如果我在控制器操作中设置文本,它将如何在site.master中显示?
我很困惑b / c主人的强类型视图会有所不同。
(MVC2)
更新
另外,如果我重定向到另一个视图,即使我设置了viewmodel它也不会被使用,因为它是重定向的,我知道mvc有某种单页会话,那又是什么呢?
答案 0 :(得分:2)
对于我所有的强类型ViewModel,我使用了一个通用的基类和接口。默认情况下,母版页会获取它们。
public class ViewModelBase : IViewModel {
public string InformationForMasterPage{get;set;}
}
public class ViewModelHomePage : ViewModelBase{
public string SomeInformationNotNeededForMasterPage{get;set;}
}
public interface IViewModel{
public string InformationForMasterPage{get;set;}
}
在首页顶部:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<ViewModelHomePage>" %
然后是主页的顶部:
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<IViewModel>" %>
然后深入母版页:
<%: Model.InformationForMasterPage %>
工作得很好。
答案 1 :(得分:0)
在控制器中,您可以将对象保存在ViewData
或ViewBag
字典中,并从视图和母版中访问它。