Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menyesuaikan Lokasi Carian Lihat dalam ASP.NET MVC untuk Cari Paparan dalam Subfolder Tertentu?

Bagaimanakah Saya Boleh Menyesuaikan Lokasi Carian Lihat dalam ASP.NET MVC untuk Cari Paparan dalam Subfolder Tertentu?

Mary-Kate Olsen
Lepaskan: 2025-01-26 00:56:10
asal
594 orang telah melayarinya

How Can I Customize View Search Locations in ASP.NET MVC to Find Views in Specific Subfolders?

Sesuaikan kedudukan carian paparan dalam ASP.NET MVC

Apabila menganjurkan projek MVC, mungkin perlu untuk menentukan lokasi tersuai untuk operasi carian paparan. Ini membolehkan pengawal mencari paparan dalam subfolder tertentu untuk menampung projek dengan struktur direktori yang unik.

Soalan:

Dalam projek dengan reka letak berikut:

<code>/Controllers
    /Demo
        /DemoArea1Controller
        /DemoArea2Controller
        等等...
/Views
    /Demo
        /DemoArea1/Index.aspx
        /DemoArea2/Index.aspx</code>
Salin selepas log masuk

Gunakan DemoArea1Controller dengan kod berikut:

<code>public ActionResult Index()
{
    return View();
}</code>
Salin selepas log masuk

akan mengakibatkan ralat "Lihat 'indeks' atau halaman induknya tidak ditemui". Secara lalai, MVC mencari paparan dalam:

  • ~/Views/ControllerName/ActionName.aspx
  • ~/Views/ControllerName/ActionName.ascx
  • ~/Views/Shared/ActionName.aspx
  • ~/Views/Shared/ActionName.ascx

Masalah ini berlaku kerana pengawal menjangkakan untuk mencari paparan Index.aspx dalam ~/Views/DemoArea1, tetapi paparan terletak dalam ~/Views/Demo/DemoArea1/Index.aspx.

Penyelesaian:

Untuk menentukan lokasi tersuai untuk operasi carian lihat, lanjutkan kelas WebFormViewEngine:

<code>public class CustomViewEngine : WebFormViewEngine
{
    public CustomViewEngine()
    {
        var viewLocations = new[] {
            "~/Views/{1}/{0}.aspx",
            "~/Views/{1}/{0}.ascx",
            "~/Views/Shared/{0}.aspx",
            "~/Views/Shared/{0}.ascx",
            "~/Demo/Views/{1}/{0}.aspx",
            "~/Demo/Views/{1}/{0}.ascx"
        };

        this.PartialViewLocationFormats = viewLocations;
        this.ViewLocationFormats = viewLocations;
    }
}</code>
Salin selepas log masuk

Dalam enjin lanjutan ini, lokasi carian tambahan ~/Demo/Views/{1}/{0}.aspx ditambahkan pada senarai lokasi paparan. Ini membenarkan pengawal dalam ruang nama Demo untuk mencari paparan dalam subfolder paparan Demo.

Ingat untuk mendaftarkan enjin paparan tersuai anda dalam kaedah Application_Start Global.asax.cs:

<code>protected void Application_Start()
{
    ViewEngines.Engines.Clear();
    ViewEngines.Engines.Add(new CustomViewEngine());
}</code>
Salin selepas log masuk

Dengan mencipta enjin paparan tersuai, pembangun boleh menentukan lokasi carian tambahan untuk paparan dengan mudah, memberikan fleksibiliti dan organisasi dalam projek ASP.NET MVC.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyesuaikan Lokasi Carian Lihat dalam ASP.NET MVC untuk Cari Paparan dalam Subfolder Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan