27

这个html有什么问题吗?我想在母版页中有一个链接来导航到“CreateParts”视图。我有动作'CreateParts',它在控制器'PartList'中有一个参数parentPartId。

<li id="taskAdminPartCreate" runat="server">
                                    <%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 })%></li>

我的控制器动作就像

public ActionResult CreateParts(int parentPartId)
    {
        HSPartList objHSPart = new HSPartList();
        objHSPart.Id = parentPartId;
        return View(objHSPart);
    }

当我在 SiteMaster 的菜单中单击“创建新零件”时,出现异常。请帮我解决这个问题。

4

3 回答 3

65

您正在使用不正确的重载。你应该使用这个重载

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    string controllerName,
    Object routeValues,
    Object htmlAttributes
) 

正确的代码是

<%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 }, null)%>

请注意末尾的额外参数。对于其他重载,请访问LinkExtensions.ActionLink 方法。如您所见string, string, string, object,您没有尝试使用过载。

于 2011-11-28T11:04:58.123 回答
10

You are using the incorrect overload of ActionLink. Try this

<%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 }, null)%>
于 2011-11-28T11:04:39.277 回答
9

除了接受的答案:

如果你要使用

 @Html.ActionLink("LinkName", "ActionName", "ControllerName", new { @id = idValue, @secondParam= = 2 },null)

这将创建 actionlink,您无法为链接创建新的自定义属性或样式。

但是,ActionLink 扩展中的第 4 个参数将解决该问题。以您的方式使用第四个参数进行自定义。

 @Html.ActionLink("LinkName", "ActionName", "ControllerName", new { @id = idValue, @secondParam= = 2 }, new { @class = "btn btn-info", @target = "_blank" })
于 2014-07-08T03:51:12.550 回答