2011-11-02 68 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

。谢谢 –