2012-02-07 2 views
5

이것이 정상적인 지 모르지만 ChildActionOnly 메서드가 경로를 요청해야합니까? 예를ASP MVC ChildActionOnly에 라우팅이 있어야 함

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

를 들어 나는 그것을 좋아 렌더링 : 디버그에서

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

나는 상단 줄에 얻을 : 경로 테이블에

없음 경로가 지정된 값과 일치하지 않습니다.

UPDATE

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

답변

5

예 그렇습니다.

모두 [ChildActionOnly]의 경우 URL (예 : 일반 HTTP GET)을 통해 액세스 할 수 없으며 Html.Action 또는 Html.RenderAction으로 실행해야합니다. 새로운 HTTP 요청은 아니지만 MVC 요청 파이프 라인 (경로 값을 통한 컨트롤러/액션 선택)을 계속 통과합니다.

+0

감사합니다. 내가 질문을 업데이트하고 경로 값의 예를 추가 한 것 외에 한 가지 더. 두 개의 선택적 매개 변수가있는 것이 유효한지 말할 수 있습니까? – 1110

+0

@ 1110 - 예. 값은 단순히'string.Empty'로 설정됩니다. 값이 설정되지 않습니다. – RPM1984

관련 문제