MVC行动链接问题

时间:2015-10-06 14:31:41

标签: asp.net-mvc-5 html.actionlink

我遇到过关于Html.Actionlink的MVC 5似乎不一致的问题。在不同的cshtml文件中,我可以使用相同的代码,但生成的url目标是不同的。

例如,这行代码:

<td>@Html.ActionLink(item.Description, "Edit", new { item.ParentTableID }) </td>

生成此网址

localhost\MyControllerClass\Edit?ParentTableID=35

然后正确调用ActionView方法编辑并按预期将参数提供给35。

但是,在另一个cshtml文件中,这一行

<td>@Html.ActionLink("Edit", "EditChild", new { id = f.ApplicationTableFieldID})</td>

生成此网址

localhost/MyControllerClass/Edit/7

当它到达EditChild Action View时,参数为null。

我现在已经看过几次这样的事了,还没有能够理解是什么造成了不同。但我需要第一个结果。

感谢。

1 个答案:

答案 0 :(得分:1)

确保在Action方法和ActionLink Html帮助程序中正确命名了ID参数。视觉差异来自MVC 默认路由以及它如何获取名为ID的参数并将其放在没有查询字符串的URL中(?后跟东西)

如果您的操作方法如下所示

public ActionResult EditChild(int ParentTableID){}

然后,当您将URL传递回URL

时,您需要将您的ID参数命名为ParentTableID
<td>@Html.ActionLink("Edit", "EditChild", new { ParentTableID = f.ApplicationTableFieldID})</td>

现在应该生成以下网址

localhost\MyControllerClass\EditChild?ParentTableID=3