2011-11-02 110 views
0

我在ASP.NET MVC3工作在partialview「無法解析的行動」。我有一個局部視圖RestaurantAdminNavigation.ascx我移動離開Views/Restaurant文件夾以Views/Shared文件夾。在ASP.NET MVC共享區

我對這種觀點

<%:Html.ActionLink("Edit", "Edit", "Restaurant", new { id=Model.OId }) %>

這是工作正常,當它在Views/Restaurant文件夾中的動作鏈接,但在Views/Shared文件夾移動後,如果我把參數作爲動作鏈接的一部分,它向我顯示錯誤「無法解析操作編輯」。但是,如果我保持

<%:Html.ActionLink("Edit", "Edit", "Restaurant") %>

它不顯示我的錯誤。

谷歌搜索後,我明白其中的道理可能被註冊的路由。我需要在Global.ascx文件中註冊路由,但我不明白如果這是解決方案,我應該編碼什麼。

+0

你能提供你RestaurantController的編輯操作的代碼? – Suhas

+0

從外觀上看,它應該沒有問題。你有任何屬性適用於此操作?該控制器中是否有另一個Edit動作超載? – Suhas

+0

除了HTTP Post之外沒有過載。 –

回答

6

您正在使用ActionLink的助手的錯誤overload

<%= Html.ActionLink(
    "Edit",     // linkText 
    "Edit",     // actionName 
    "Restaurant",   // routeValues 
    new { id = Model.OId } // htmlAttributes 
) %> 

而這裏的correct one

<%= Html.ActionLink(
    "Edit",     // linkText 
    "Edit",     // actionName 
    "Restaurant",   // controllerName 
    new { id = Model.OId }, // routeValues 
    null      // htmlAttributes 
) %> 
+0

。謝謝 –