2012-02-07 12 views
5

No sé si esto es normal, pero ¿deberían los métodos ChildActionOnly preguntar por la ruta? Por ejemplo ASP MVC ChildAction Solo debe tener el enrutamiento

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

me lo traducen como:

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

En depuración me sale en la línea superior:

No hay ruta en la tabla de rutas coincide con los valores suministrados.

ACTUALIZACIÓN

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

Respuesta

5

Sí lo hace.

Todo [ChildActionOnly] hace es decir que esta acción no se puede acceder a través de la URL (por ejemplo un GET HTTP normal), sino que ha de ser ejecutado por Html.Action o Html.RenderAction. No se trata de una nueva solicitud HTTP, pero continúa en la canalización de solicitudes de MVC (selección de controlador/acción mediante valores de ruta).

+0

Gracias. Solo una cosa más he actualizado la pregunta y he añadido un ejemplo del valor de la ruta. ¿Me puede decir si esto es válido para tener dos parámetros opcionales? – 1110

+0

@ 1110 - sí lo es. Los valores simplemente se establecerán en 'string.Empty' si no se establecen valores. – RPM1984

Cuestiones relacionadas