我有一個MVC應用程序與自定義視圖引擎實現主題選擇,即視圖的母版頁的動態設置。應用程序結構描述爲 here 問題是主頁面在Views文件夾中的默認位置不存在。 (這是因爲我想要所有主題相關的文件,即.css和圖像與master一起放在一個地方。將css放入Views將會破壞安全問題 - 默認視圖web.config不允許訪問任何內容,我寧願保持這種方式),一切工作正常,直到我試圖改變母版頁是強類型,即指定ASP.NET MVC強類型母版頁視圖文件夾
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<MyApp.Models.BaseModel>" %>
然後在頁面拋出錯誤:
Could not load System.Web.Mvc.ViewMasterPage < MyApp.Models.BaseModel >
。
那麼,有什麼辦法可以將該名稱空間導入它所需的位置嗎?要改變web.config(在視圖文件夾,我假設)或其他地方的一些設置?
爲什麼我需要強類型的主要原因是基礎模型有一些方法將在整個主站的許多地方使用。我知道我可以用類型化ViewData.Model,但想象一個充滿了類型轉換的頁面 - 不完全是一個很好的代碼。到目前爲止,我只是簡單地使用對象的擴展方法,所以它在無類型的主模塊上「模擬」了BaseModel的方法。但這只是暫時的解決辦法,我希望。只是認爲應該有一些簡單的方法來做到這一點(如在.config中添加單行)。也許不會。至於ViewDataFacade - 我不確定我是否理解你的意思,如果你能詳細說明......? – tom 2010-11-14 18:05:28
嗨,湯姆,我已經用一個例子更新了答案。謝謝。 – 2010-11-14 21:04:02