2012-04-18 21 views

Trả lời

36

Phương thức xem có quá tải để đặt bố cục chính của nó như sau:

return View ("NameOfView",masterName:"viewName"); 
6

Sử dụng mã của bạn, bạn có thể đặt điều này trong View của bạn:

@ { 
    Layout = ViewData["Layout"]; 
} 
+0

các câu hỏi cụ thể yêu cầu về bộ điều khiển ... – Nathan

+1

Ông đã thiết lập các ViewData [ "Layout"] trong mã của mình, đây là những gì anh ta cần phải thêm vào nhằm làm cho nó làm việc nhưng tôi thấy những gì bạn đang nói. –

+0

Hoạt động hoàn hảo với tôi, Dotnet Core MVC không có tài sản của MasterName trên màn hình nên tôi không thể thiết lập điều đó. Tôi đã chỉnh sửa mã này để mạnh mẽ hơn một chút. Layout = (ViewData ["Layout"] dưới dạng String) ?? "_Bố trí"; – Matt

-2

Nếu bạn có một tập tin trong thư mục _ViewStart.cshtml lần xem, bạn có thể tự động thiết lập các bố trí cho tất cả các quan điểm trong cùng một thư mục (và các thư mục con):

@{ 
    Layout = "~/Views/Shared/Layout.cshtml"; 
} 
+2

Câu hỏi đặt ra là làm thế nào để đặt nó từ bộ điều khiển. –

+1

Đủ công bằng, đọc sai câu hỏi :). Trong trường hợp đó, bạn có thể sử dụng đề xuất của Rob ở trên. –

8

trong phương pháp hành động mà bạn có thể sử dụng MasterName tài sản trong ViewResult lớp để thay đổi trang bố trí.

public ActionResult Index() 
     { 
      var myView = View(); 
      myView.MasterName = "~/Views/Shared/_Layout2.cshtml"; 
      return myView; 
     } 
+0

Luôn tuyệt vời để xem các hương vị khác nhau. –

2

Trong bộ điều khiển, bạn có thể đặt trang chính như thế này. Tôi đang sử dụng MVC 5,2

return View("ViewName", "MasterPageName", model) 
Các vấn đề liên quan