2012-02-07 53 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.ActionHtml.RenderAction執行。這不是一個新的HTTP請求,但它仍然通過MVC請求管道(通過路由值控制器/動作選擇)。

+0

謝謝。還有一件事我已經更新了問題並添加了路線價值的例子。你能告訴我這是否有效,有兩個可選參數? – 1110 2012-02-07 23:17:22

+0

@ 1110 - 是的。值將簡單地設置爲'string.Empty'沒有設置值。 – RPM1984 2012-02-08 20:11:28