ASP MVC ChildActionOnly应该有路由

111*_*110 5 asp.net-mvc asp.net-mvc-routing asp.net-mvc-3

我不知道这是否正常,但ChildActionOnly方法是否要求路线?例如

[ChildActionOnly]
        public PartialViewResult List(string countryCode, string cityName)
        {...
            return PartialView(model);
        }
Run Code Online (Sandbox Code Playgroud)

我渲染它像:

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

在调试中我得到了上线:

路由表中的路由与提供的值不匹配.

UPDATE

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

RPM*_*984 5

是的,它确实.

所有[ChildActionOnly]这一切都表明无法通过URL访问此操作(例如,常规HTTP GET),而必须通过Html.Action或执行Html.RenderAction.它不是新的HTTP请求,但它仍然通过MVC请求管道(通过路由值选择控制器/动作).