这个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菜单中的“创建新部件”时,我会遇到异常。请帮我解决这个问题。
答案 0 :(得分:62)
您使用的是错误的重载。你应该使用这个重载
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 Method。如您所见,您尝试使用string, string, string, object
重载。
答案 1 :(得分:10)
您正在使用ActionLink的错误重载。试试这个
<%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 }, null)%>
答案 2 :(得分:9)
除了接受的答案:
如果您打算使用
@Html.ActionLink("LinkName", "ActionName", "ControllerName", new { @id = idValue, @secondParam= = 2 },null)
这将创建actionlink,您无法为链接创建新的自定义属性或样式。
但是,ActionLink扩展中的第4个参数将解决该问题。以您的方式使用第4个参数进行自定义。
@Html.ActionLink("LinkName", "ActionName", "ControllerName", new { @id = idValue, @secondParam= = 2 }, new { @class = "btn btn-info", @target = "_blank" })