我的視圖都使用強類型的視圖模型。我的所有觀點都是強類型的,如何傳遞給site.master?
現在在我的控制器操作中,我想設置一個警告文本,該文本將顯示在我的site.master文件中。
如果我在我的控制器操作中設置文本,它將如何在site.master中可見?
我很困惑b/c主人的強類型視圖會有所不同。
(MVC2)
更新
而且,如果我重定向到另一種觀點認爲,即使我把它不會被使用的視圖模型,因爲它是重定向,我知道MVC有一些一種單一的頁面會話,那又叫什麼?
我的視圖都使用強類型的視圖模型。我的所有觀點都是強類型的,如何傳遞給site.master?
現在在我的控制器操作中,我想設置一個警告文本,該文本將顯示在我的site.master文件中。
如果我在我的控制器操作中設置文本,它將如何在site.master中可見?
我很困惑b/c主人的強類型視圖會有所不同。
(MVC2)
更新
而且,如果我重定向到另一種觀點認爲,即使我把它不會被使用的視圖模型,因爲它是重定向,我知道MVC有一些一種單一的頁面會話,那又叫什麼?
在控制器中,您可以將對象保存在ViewData
或ViewBag
字典中,並從視圖和主控兩者中進行訪問。
但viewdata將無法正常工作,如果我正在做一個'return redirecttoaction'的權利?我必須使用viewbag? – codecompleting 2012-02-10 16:44:54
對於我所有的強類型ViewModels,我都使用一個通用的基類和接口。默認情況下,母版頁獲取它們。
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 %>
將工作得很好。
你不能使用接口嗎?對於eaxmple:IView – Bazzz 2012-02-10 16:06:09