Quy trình 1: Kiểm soát hiển thị Layouts bằng cách sử dụng tệp _ViewStart trong thư mục gốc của thư mục Views
Phương pháp này là cách đơn giản nhất để người mới bắt đầu kiểm soát việc kết xuất Bố cục trong ứng dụng ASP.NET MVC của bạn. Chúng tôi có thể xác định bộ điều khiển và hiển thị các Bố cục dưới dạng bộ điều khiển mệnh, để làm điều này, chúng tôi có thể viết mã của mình trong tệp _ViewStart trong thư mục gốc của thư mục Chế độ xem. Sau đây là một ví dụ cho thấy nó có thể được thực hiện như thế nào.
@{
var controller = HttpContext.Current.Request.RequestContext.RouteData.Values["Controller"].ToString();
string cLayout = "";
if (controller == "Webmaster") {
cLayout = "~/Views/Shared/_WebmasterLayout.cshtml";
}
else {
cLayout = "~/Views/Shared/_Layout.cshtml";
}
Layout = cLayout;
}
Quy trình 2: Đặt bố cục bằng cách quay lại từ ActionResult
Một trong những tính năng tuyệt vời của ASP.NET MVC là, chúng ta có thể ghi đè kết xuất bố cục mặc định bằng cách trả lại bố cục từ ActionResult. Vì vậy, đây cũng là một cách để hiển thị các Layout khác nhau trong ứng dụng ASP.NET MVC của bạn. Mẫu mã sau đây cho thấy cách nó có thể được thực hiện.
public ActionResult Index()
{
SampleModel model = new SampleModel();
return View("Index", "_WebmasterLayout", model);
}
Quy trình 3: Xem - Bố cục khôn ngoan (Bằng cách xác định Bố cục trong mỗi chế độ xem ở trên cùng)
ASP.NET MVC cung cấp cho chúng ta một tính năng và khả năng fax tuyệt vời như vậy để ghi đè kết xuất bố cục mặc định bằng cách xác định bố cục trên dạng xem. Để thực hiện điều này, chúng ta có thể viết mã của mình theo cách sau trong mỗi Chế độ xem.
@{
Layout = "~/Views/Shared/_WebmasterLayout.cshtml";
}
Quy trình 4: Đặt tệp _ViewStart vào mỗi thư mục
Đây là một cách rất hữu ích để đặt các Bố cục khác nhau cho từng Bộ điều khiển trong ứng dụng ASP.NET MVC của bạn. Nếu chúng ta muốn đặt Bố cục mặc định cho từng thư mục thì chúng ta có thể thực hiện việc này bằng cách đặt tệp _ViewStart vào mỗi thư mục với thông tin Bố cục bắt buộc như hình dưới đây:
@{
Layout = "~/Views/Shared/_WebmasterLayout.cshtml";
}
null
trong trang được kết xuất không?