在尝试应用ID时,Html.ActionLink助手创建了错误的链接

Jef*_*ddy 2 razor asp.net-mvc-3

尝试为通过Razor @ Html.ActionLink助手创建的[a]标签分配ID属性时,我得到一个奇怪的结果

我的原始代码是这样的:

 @Html.ActionLink("Create New Order", "Index", "NewOrder")
Run Code Online (Sandbox Code Playgroud)

这可以正常工作并创建一个链接http://www.mysite.com/NewOrder但我想为我的元素添加一个ID标签.

然后我尝试了这个

 @Html.ActionLink("Create New Order", "Index", "NewOrder", new {@id = "orderlink"})
Run Code Online (Sandbox Code Playgroud)

这将创建一个http://www.mysite.com/Orders?Length=8的链接

更新:

当我使用提供的解决方案时,

@ Html.ActionLink("创建新订单","索引","NewOrder",新{@id ="orderlink"},null)

我得到一个如下链接:http: //www.mysite.com/NewOrder/Index/orderlink

我不希望将orderlink添加到我的链接/路由中.我想将它添加到[a]标签属性中.请参阅问题的顶部.

我想得到这个:

 <a id="orderlink" href="/tcap/NewOrder/Index" >Create New Order</a>
Run Code Online (Sandbox Code Playgroud)

Shy*_*yju 6

试试这个过载.

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    string controllerName,
    Object routeValues,
    Object htmlAttributes
)
Run Code Online (Sandbox Code Playgroud)

所以你的代码将是

 @Html.ActionLink("Create New Order", "Index", "NewOrder", 
              new {@id = "orderlink"},null)
Run Code Online (Sandbox Code Playgroud)

编辑:根据您的评论/更新的问题

使用重载

 @Html.ActionLink("Create New Order", "Index", "NewOrder")
Run Code Online (Sandbox Code Playgroud)

这会给你 mysite.com/NewOrder/Index网址

编辑2:如果你想, <a id="orderlink" href="/tcap/NewOrder/Index" >Create New Order</a>

使用此方法,将HTML属性作为重载的第五个参数传递

@Html.ActionLink("Create New Order", "Index", 
            "NewOrder",null,new {@id="orderlink"})
Run Code Online (Sandbox Code Playgroud)