gpt4 book ai didi

Asp.Net MVC ActionLink

转载 作者:行者123 更新时间:2023-12-04 02:40:15 26 4
gpt4 key购买 nike

谁能解释为什么会发生以下情况?以及如何解决,Visual Studio 2010 和 MVC2

<%= Html.ActionLink("Add New Option", "AddOption", "Product", new { @class = "lighbox" }, null)%>

结果是

/Product/AddOption?class=lightbox


<%= Html.ActionLink("Add New Option", "AddOption", "Product", new { @class = "lighbox" })%>

结果是

/Product/AddOption?Length=7



谢谢

最佳答案

您正在使用这些各自的重载:

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

发件人: http://msdn.microsoft.com/en-us/library/dd504972.aspx
public static MvcHtmlString ActionLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
Object routeValues,
Object htmlAttributes
)

发件人: http://msdn.microsoft.com/en-us/library/dd492124.aspx

第一 new { @class = "lighbox" }被传递为 routeValues参数应该是 htmlAttributes争论。

这种问题在 MVC 中使用的扩展方法中很常见。在有时可以帮助使用 命名参数 (C# 4.0) 使事情更具可读性:
<%= Html.ActionLink(linkText: "Add New Option", 
actionName: "AddOption",
controllerName: "Product",
htmlAttributes: new { @class = "lighbox" },
routeValues: null)%>

关于Asp.Net MVC ActionLink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2897481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com