簡體   English   中英

無法使用 Razor 視圖引擎訪問來自不同項目的視圖

[英]Can't access views from different project using Razor View Engine

我有一個用例,我有許多 web 項目,它們都使用相同的管理通用 web 頁面,所以我開始將我的視圖隔離到一個單獨的項目中,所有解決方案都可以引用和使用。

因為目前,每當我有新的更改時,我都必須跨解決方案復制粘貼視圖文件。

基於這個答案,我添加了一個新的自定義視圖引擎,然后添加了我的視圖所在位置的路徑(在我的主項目旁邊的一個單獨的項目中)。

    public class CustomViewEngine : RazorViewEngine
    {
        public CustomViewEngine()
        {
            MasterLocationFormats = new string[]
            {
        "~/Views/{1}/{0}.aspx",
        "~/Views/{1}/{0}.ascx",
        "~/Views/Shared/{0}.aspx",
        "~/Views/Shared/{0}.ascx",
        "~/Shared.Views/Views/{1}/{0}.aspx",
        "~/Shared.Views/Views/{1}/{0}.ascx",

            };
            ViewLocationFormats = new string[]
            {
        "~/Views/{1}/{0}.aspx",
        "~/Views/{1}/{0}.ascx",
        "~/Views/Shared/{0}.aspx",
        "~/Views/Shared/{0}.ascx",
        "~/../Shared.Views/Views/{1}/{0}.aspx",
        "~/../Shared.Views/Views/{1}/{0}.ascx",
            };
      }
    }

當包括以下內容時:

"~/../Shared.Views/Views/{1}/{0}.aspx",
"~/../Shared.Views/Views/{1}/{0}.ascx",

我收到以下異常:

不能使用前導.. 退出頂級目錄。 說明:在執行當前 web 請求期間發生未處理的異常。 請查看堆棧跟蹤以獲取有關錯誤及其源自代碼的位置的更多信息。

異常詳細信息:System.Web.HttpException:無法使用前導..退出頂級目錄。

我的文件結構。

Solution
   Shared.Views
      Views
         Profiles
            create.cshtml
            delete.cshtml
            edit.cshtml
            details.cshtml
   MainProject
      Global.asax

我必須添加什么正確路徑來告訴 MVC 在我的單獨項目中查找視圖?

您不能像現在這樣引用另一個項目中的文件。 如果您使用的是 ASPNET Core 2.1+,請查看Razor Class 庫

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM