繁体   English   中英

我的所有观点都是强类型的,如何传递给site.master?

[英]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 %>

会工作得很好。

在控制器中,您可以将对象保存在ViewDataViewBag字典中,并从视图和主控中访问它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM