在ASP.NET MVC共享区域的partialview中"无法解决操作"

Foy*_*rim 0 c# asp.net asp.net-mvc partial-views asp.net-mvc-3

我正在研究ASP.NET MVC3.我有一个局部视图RestaurantAdminNavigation.ascx,我从Views/Restaurant文件Views/Shared夹移动到文件夹.

我在该视图中有一个操作链接

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

当它在Views/Restaurant文件夹时工作正常,但在文件夹移动后Views/Shared,如果我将参数作为该操作链接的一部分,它会显示错误"无法解决操作编辑".但如果我保持

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

它没有告诉我错误.

谷歌搜索后,我明白原因可能是注册路线.我需要在Global.ascx文件中注册路由,但如果这是解决方案,我无法理解我应该编码什么.

Dar*_*rov 6

您正在使用ActionLink帮助程序的错误重载:

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

这是正确的:

<%= Html.ActionLink(
    "Edit",                  // linkText
    "Edit",                  // actionName
    "Restaurant",            // controllerName
    new { id = Model.OId },  // routeValues
    null                     // htmlAttributes
) %>
Run Code Online (Sandbox Code Playgroud)