我在MVC 4应用程序中创建了一个Admin区域。在名为UserManage的Views文件夹下,我使用Grid.MVC在几个页面上列出用户(5组)。在网格中,我列出了供管理员查看的用户详细信息,并添加了以下内容:
EDIT链接的列。CREATE按钮。DELETE按钮(与每一行的复选框一起使用)。我的“用户详细信息”页面位于以下路径的“我的管理区域”下:Project\Areas\Admin\Views\UserManage\Index.cshtml。在我的EDIT liniks上,我试图在Project\Areas\Admin\Views\UserManage\Edit.cshtml上拉出视图,并将单独的UserID传递给视图,以提取用户的数据。
在下面的当前代码中,我的浏览器解析为http://localhost:62517/Admin/UserManage/Edit?Length=4,出现IIS8.0 404错误(Controller找不到UserID)。但是,如果我按如下方式手动将Length更改为Id,那么所有操作都会按预期进行,并在Id视图中结束:http://localhost:62517/Admin/UserManage/Edit?Id=4。
这是我的Index.cshtml页面的网格代码。有人知道我需要在我的Html.ActionLink()上修改什么,这样我的路由就会被解析为?Id=而不是?Length=吗?
<div class="overflowPrevention">
@Html.Grid(Model).Columns(columns =>
{
columns.Add().Encoded(false).Sanitized(false).SetWidth(30).RenderValueAs(o => @Html.CheckBox("checked", false));
columns.Add().Encoded(false).Sanitized(false).RenderValueAs(o => Html.ActionLink("Edit", "Edit", "Edit", new { id = "1" }));
}).AutoGenerateColumns()
</div>发布于 2014-04-22 14:38:57
你使用了错误的过载。
@Html.ActionLink(string linkText, string actionName, string controllerName, object htmlAttributes)而不是
@Html.ActionLink(string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes)如果不需要使用null,则只需对htmlAttributes传递null:
Html.ActionLink("Edit", "Edit", "UserManage", new { id = "1" }, null)我不知道你为什么要使用编辑,编辑,编辑。我认为这是一个错误,所以我已经将它更改为使用UserManage作为控制器名称。
https://stackoverflow.com/questions/23222532
复制相似问题