Saya ingin memiliki 2 Tata Letak terpisah dalam aplikasi saya. Katakanlah satu untuk bagian Umum situs web dan yang lainnya untuk sisi Anggota.
Untuk kesederhanaan katakanlah semua logika untuk masing-masing situs tesis dibungkus rapi menjadi 2 pengontrol yang berbeda.
- PublicController
- StaffController
Dan mereka masing-masing memiliki Tata Letak yang sesuai untuk semua Tampilan di bawah masing-masing.
- _PublicLayout.cshtml
- _StaffLayout.cshtml
Bagaimana cara menggunakan file _ViewStart.cshtml untuk menentukan bahwa semua Tampilan / Tindakan di bawah "Publik" menggunakan PublicLayout dan segala sesuatu di bawah "Staf" menggunakan StaffLayout?
Terima kasih!
asp.net-mvc
layout
asp.net-mvc-3
razor
Justin
sumber
sumber
Razor
, cukup aturLayout = null;
Jawaban:
Anda bisa meletakkan
_ViewStart.cshtml
file di dalam/Views/Public
folder yang akan menimpa file default di/Views
folder dan menentukan tata letak yang diinginkan:Secara analogi Anda bisa meletakkan
_ViewStart.cshtml
file lain di dalam/Views/Staff
folder dengan:Anda juga bisa menentukan tata letak mana yang harus digunakan ketika mengembalikan tampilan di dalam aksi pengontrol tapi itu per tindakan:
Namun kemungkinan lain adalah filter tindakan khusus yang akan menimpa tata letak. Seperti yang Anda lihat banyak kemungkinan untuk mencapai ini. Terserah Anda untuk memilih mana yang paling cocok dengan skenario Anda.
MEMPERBARUI:
Seperti yang diminta di bagian komentar, inilah contoh filter tindakan yang akan memilih halaman master:
dan kemudian menghias pengontrol atau tindakan dengan atribut khusus ini menentukan tata letak yang Anda inginkan:
sumber
LayoutInjecterAttribute
. ? Apakah ada lokasi tertentu?ActionFilters
sub-folder.LayoutInjecterAttribute
: Ini dipanggil sebelum metode controllerOnException
. Jadi, jika pengontrol memberikan hasil tampilan selama penanganan pengecualian, tata letak tidak akan ditetapkan.OnActionExecuted
. Tolong perbarui jawaban untuk saya.Satu metode lagi adalah Menentukan Layout di dalam View:
Lebih banyak cara untuk dilakukan, dapat ditemukan di sini , semoga ini membantu seseorang.
sumber
Metode ini adalah cara paling sederhana bagi pemula untuk mengontrol rendering Layout di aplikasi ASP.NET MVC Anda. Kita dapat mengidentifikasi controller dan merender Layouts sebagai par controller, untuk melakukan ini kita dapat menulis kode kita dalam file _ViewStart di direktori root dari folder Views. Berikut ini adalah contoh yang menunjukkan bagaimana hal itu dapat dilakukan.
Baca Artikel Lengkap di sini "Cara Merender Tata Letak yang berbeda di ASP.NET MVC"
sumber