因此,我一直在修補我正在處理的MVC應用的視圖位置,具體是因爲我需要能夠在子站點中爲父站點使用視圖/路由。自定義視圖引擎位置視圖模型解析問題
最終我希望能夠從不同位置提供視圖,比如〜/ SiteAViews/..其中〜是站點B的根目錄,並且存放在站點〜/ SiteAViews /中的視圖是複製到從SiteA發佈構建事件。
自定義視圖引擎聽起來很容易。不過,我已經在自定義視圖引擎(下面的示例更改)中添加了視圖和母版頁的位置。訪問URI時發生問題,因此在SiteA dll中定義的路由(在siteB中引用)。
this.ViewLocationFormats = new string[8]
{
"~/Views/{1}/{0}.aspx",
"~/Views/{1}/{0}.ascx",
"~/Views/Shared/{0}.aspx",
"~/Views/Shared/{0}.ascx",
"~/SiteAViews/{1}/{0}.aspx",
"~/SiteAViews/{1}/{0}.ascx",
"~/SiteAViews/Shared/{0}.aspx",
"~/SiteAViews/Shared/{0}.ascx"
};
如果我改變視圖引擎,和後生成任務,指/內容複製到〜/視圖/站點A/..而不是〜/ SiteAViews/..這一切的偉大工程和解析視圖模型。但是,〜/ SiteAViews/..我收到以下內容。
異常類型:HttpParseException異常消息:無法加載 類型 'System.Web.Mvc.ViewPage < 'Shared.MyViewModel'>'。在處System.Web.UI.TemplateParser System.Web.UI.TemplateParser.ParseFile(字符串physicalPath, VirtualPath virtualPath) System.Web.UI.TemplateParser.ParseString(字符串文本,VirtualPath virtualPath,編碼fileEncoding)。解析()在 System.Web.Compilation.BaseTemplateBuildProvider.get_CodeCompilerType() 在 System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider)在 System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() 的系統。 Web.Compilation.BuildProvidersCompiler.PerformBuild()at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath vir tualPath)
謝謝丹尼爾。很好的答案,這不用說工作。我將web.config複製到SiteAViews中,並且一切正常。我會盡全力考慮你的答案,以獲得最好的,而不是最快的解決方案。我從來沒有看過Views/Web.config的用途,現在我知道了。謝謝。 –
乾杯蒂姆,很高興能夠幫助:) –