2012-02-07 35 views
5

Tôi không biết nếu điều này là bình thường nhưng nên ChildActionOnly phương pháp yêu cầu tuyến đường? Ví dụASP MVC ChildActionOnly nên có định tuyến

[ChildActionOnly] 
     public PartialViewResult List(string countryCode, string cityName) 
     {... 
      return PartialView(model); 
     } 

tôi làm cho nó thích:

@{Html.RenderAction("List", "MyController", new { area = "MyArea", countryCode = ViewBag.CountryCode, cityName = ViewBag.CityName });} 

Trong debug tôi nhận được trên dòng trên:

Không tuyến đường trong bảng định tuyến phù hợp với các giá trị cung cấp.

CẬP NHẬT

context.MapRoute("name", 
       "", 
       new { area = "MyArea", controller = "MyControlelr", action = "List", countryCode = UrlParameter.Optional, cityName = UrlParameter.Optional }); 

Trả lời

5

Có nó.

Tất cả [ChildActionOnly] có nghĩa là hành động này không thể truy cập được qua URL (ví dụ: HTTP GET thông thường), thay vào đó nó phải được thực thi bởi Html.Action hoặc Html.RenderAction. Nó không phải là một yêu cầu HTTP mới, nhưng nó vẫn đi qua đường ống yêu cầu MVC (lựa chọn bộ điều khiển/hành động thông qua các giá trị tuyến đường).

+0

Cảm ơn. Chỉ một điều nữa tôi đã cập nhật câu hỏi và thêm ví dụ về giá trị tuyến đường. Bạn có thể cho tôi biết điều này có hợp lệ để có hai tham số tùy chọn không? – 1110

+0

@ 1110 - vâng. Các giá trị đơn giản sẽ được đặt thành 'string.Empty' là không có giá trị nào được đặt. – RPM1984

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