[英]All my views are strongly typed, how to pass to site.master?
我的观点都使用强类型视图模型。
现在,在我的控制器操作中,我想设置一个警告文本,该文本将显示在我的site.master文件中。
如果我在控制器操作中设置文本,它将如何在site.master中显示?
我很困惑b / c主人的强类型视图会有所不同。
(MVC2)
更新
另外,如果我重定向到另一个视图,即使我设置了viewmodel它也不会被使用,因为它是重定向的, 我知道mvc有某种单页会话,那又是什么呢?
对于我所有的强类型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 %>
会工作得很好。
在控制器中,您可以将对象保存在ViewData
或ViewBag
字典中,并从视图和主控中访问它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.