簡體   English   中英

ASP.NET MVC從不同的文件夾動態加載視圖/局部視圖

[英]ASP.NET MVC Load Views / Partial Views Dynamically from Different Folder

對於在實現以下方案的技術/策略方面的任何幫助,我將不勝感激:

我們需要ASP.NET MVC 5網站的這種文件夾結構

名稱是文件夾,文件名使用擴展名指定。

網站文件夾結構:


    • DisplayControls
      • 產品
        • SimpleProductPage
          • SimpleProductPage.cshtml
          • 控制
            • Image.cshtml
            • ProductSpecification.cstml
        • ProductPageWithImageGallery
          • ProductPageWithImageGallery.cshtml
          • 控制
            • ImageGallery.cshtml
            • ProductSpecification.cstml
      • 類別
        • SimpleCategoryPage
          • SimpleCategoryPage.cshtml
          • 控制
            • CateogryProducts.cshtml
            • RelatedProducts.cshtml
        • CategoryPage
          • CategoryPage.cshtml
          • 控制
            • CateogryProducts.cshtml
            • RelatedProducts.cshtml
    • 控制器
      • someControllerfiles.cs
    • 查看
      • ProductView.cshtml
      • CategoryView.cshtml
      • SomeotherViews ......
    • OtherFilesAndFolders

現在,如果我們要請求“產品頁面”,則將從控制器中加載ProductView.cshtml,並在該視圖中,基於數據庫條目從“ DisplayControls”文件夾中加載一些顯示控件。 如果條目說我們需要加載“ SimpleProductPage”,那么我們將從“ SimpleProductPage”文件夾即SimpleProductPage.cshtml加載視圖,並且該視圖將具有控件,即從控件文件夾加載部分視圖。 如果“選定的顯示控件”為“ ProductPageWithImageGallery”,則該文件夾中的視圖將與其子視圖/部分視圖一起加載。

類別頁也是如此,根據數據庫條目,將從該文件夾中加載相應的控件/ Biew。

因此,基本上ProductView.cshtml和CategoryView.cshtml將充當占位符,並且所選視圖/ ChildView將在運行時加載到它們。 如您所見,我們的目標視圖未位於“視圖”文件夾中,因此對我來說有點問題。

我是MVC的新手,我們正在使用MVC 5,請您幫助我如何實現此功能。

您需要創建一個自定義視圖引擎(最有可能繼承自Razor視圖引擎),並覆蓋一個確定在哪里尋找視圖的方法。

關於這個主題的一個博客:

http://theshravan.net/blog/configure-the-views-search-locations-in-asp-net-mvc/

我處理上述情況的方式是創建一個自定義視圖引擎,該引擎將從指定的文件夾結構中加載視圖。

希望這對某人有幫助,

謝謝大家的支持。

暫無
暫無

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

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