2010-08-22 35 views
12

Tôi có ứng dụng ASP.NET MVC 2 được chia thành vài khu vực. Một trong số đó là khu vực mặc định trong danh mục chính và khu vực còn lại là khu vực Account trong danh mục Khu vực. Bây giờ, vấn đề là tôi cần phải sử dụng cùng một cái nhìn trong bộ điều khiển từ cả hai khu vực này.Trả lại chế độ xem từ một khu vực khác

Nếu chúng ở cùng khu vực, tôi chỉ return View("ViewName"), nhưng tôi có thể làm gì để trả lại chế độ xem từ khu vực mặc định trong bộ điều khiển từ khu vực Account của tôi? Bất kỳ ý tưởng?

+0

Chỉ cần lưu ý, bạn có thể dán chế độ xem này trong thư mục '~/Views/Shared' và chỉ cần gọi' return View ("ViewName") 'từ bất kỳ bộ điều khiển/khu vực nào. – Omar

Trả lời

27

Bạn có thể xác định vị trí tương đối của các quan điểm:

return View("~/Views/YourArea/YourController/YourView.aspx"); 

Nhưng khi một cái nhìn được chia sẻ giữa nhiều vùng tôi sẽ khuyên bạn nên sử dụng các thư mục ~/Views/Shared phục vụ tốt hơn mục đích này.

+0

Cảm ơn bạn Darin - Tôi sẽ thử cái này. –

4

Đây là câu hỏi cũ nhưng vẫn là vấn đề liên quan trong MVC, vì vậy đây là cách tôi giải quyết nó theo kiểu DRY cho phép bạn dễ dàng thay đổi đường dẫn máy chủ và tự động cập nhật tất cả các hành động phụ thuộc:

public class FooController : Controller 
{ 

    private ActionResult FooView(string name, string extension = "cshtml") { 
     return View("~/Areas/Bar/Views/Foo/" + name + "." + extension); } 
    } 


    public ActionResult SomeAction(){ 

     return FooView("AreaSpecificViewName"); 

    } 

    public ActionResult SomeOtherAction(){ 

     return FooView("AnotherAreaSpecificViewName", "aspx"); 

    } 

} 

Điều này gọn gàng vì mặc định là Dao cạo (.cshtml) Xem tệp nhưng có thể đặt rõ ràng bằng cách cung cấp thông số thứ hai, như được thấy trong SomeOtherAction().

Nó đơn giản nhưng tiện dụng, đặc biệt là trong quá trình phát triển khi đường dẫn của khu vực của bạn có thể thay đổi hoặc gì đó.

Hy vọng rằng sẽ giúp ai đó.

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