2010-02-18 19 views
13

Tôi đã thiết lập trình điều khiển menu để điều khiển các liên kết menu trên cùng dựa trên bộ điều khiển khác đang được sử dụng. Mỗi bộ điều khiển khác có một trang cái lồng nhau riêng biệt cho mỗi chế độ xem của nó.asp.net mvc Tôi có thể có một chế độ xem cho nhiều phương thức hành động để nhắm mục tiêu không? hoặc tôi có cần một cái nhìn riêng cho mỗi cái không?

vì vậy, tôi có trình điều khiển menu với một số phương thức trả về lượt xem, một cho mỗi bộ điều khiển hoặc "phần" của trang web. Vì vậy, hiện tại, mỗi phương pháp trong số này có chế độ xem riêng để hiển thị menu. nhưng mỗi chế độ xem để hiển thị trình đơn là cùng một mã, điều duy nhất thay đổi là logic trong các phương thức điều khiển dựa trên các liên kết để kết xuất.

có cách nào để có tất cả các hành động điều khiển này nhắm mục tiêu cùng một chế độ xem không? kể từ khi xem là như nhau cho tất cả?

cảm ơn

Trả lời

21

Vâng, đó là thực tế phổ biến.

return View("Menu"); 
3

Tạo chế độ xem được nhập mạnh mẽ nhận một vùng chứa chỉ định nội dung trình đơn của bạn. Chuyển giá trị này dưới dạng thông số trên bảng sao kê trả lại của bạn.

var thisMenu = CreateMenuForThisRequest(); 
return View ("Menu", thisMenu); 
2

tùy thuộc vào phiên bản ASP MVC bạn đang sử dụng; với MVC 2, bạn có thể tạo một điều khiển ascx và sử dụng RenderAction

theo quan điểm của bạn, bạn sẽ đặt một cái gì đó giống như

 
Html.RenderAction("Menu", "Navigation"); 

và có một bộ điều khiển chuyển hướng với một Menu ActionResult

 

public class NavigationController : Controller 
{ 
     [ChildActionOnly] 
     public ActionResult Menu() 
     { 
     Menu model;//your menu 
     return PartialView("YourMenuAscxControlName", model); 
     } 
} 
 

tôi nghĩ rằng nếu bạn đang sử dụng MVC 1, dự án MVC Future có RenderAction nhưng tôi không chắc chắn.

+0

MVC tương lai cho MVC 1 có RenderAction – freddoo

Các vấn đề liên quan