2017-03-01 105 views
0

我已將控制器配置爲從自定義位置而不是典型視圖文件夾返回視圖。這是通過添加以下代碼實現對Global.asax中asp mvc自定義視圖位置

var razorEngine = ViewEngines.Engines.OfType<RazorViewEngine>().First(); 
     razorEngine.ViewLocationFormats = razorEngine.ViewLocationFormats.Concat(new string[] 
     { 
      "~/UI/app/{1}/Views/{0}.cshtml" 
     }).ToArray(); 

它工作正常,但我使用CSS,圖像和js文件鏈接到頁面CSHTML面臨的問題。當加載頁面時,似乎這些文件404未找到,並在控制檯上收到「無法加載資源:服務器響應狀態爲404(未找到)」。

不知道我是否缺少一些東西或爲什麼它無法找到我的內容文件的路徑。 我參考內容文件的方式如下:〜/路徑

+0

CSS和JS文件使用綁定和優化機制 - 檢查其中包含'樣式/ Scripts'渲染布局視圖。包括'Application_Start'方法和'BundleConfig'代碼,以便清楚地發現確切的問題。 –

+0

什麼是您的內容文件的實際路徑? – garethb

+0

@garethb內容的路徑是〜/ UI/app/Home/JS,並且視圖只在主頁/視圖 –

回答

0

通過將web config添加到自定義目錄並確保BlockViewHandler路徑設置爲「* .cshtml」解決了此問題。 例如從

<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> 

<add name="BlockViewHandler" path="*.cshtml" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> 

希望它可以幫助別人:)