首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Html.Actionlink在与jquery选项卡一起使用时显示错误的控制器名称

Html.Actionlink在与jquery选项卡一起使用时显示错误的控制器名称
EN

Stack Overflow用户
提问于 2012-02-04 00:16:57
回答 1查看 2.7K关注 0票数 3

我使用Jquery tabs插件在我的视图中添加标签。

我想让<li><a href="../JobDetails/Index/1234">JobDetails</a></li>作为我的第一个标签。

为此我正在做这件事

代码语言:javascript
复制
   <li>@Html.ActionLink("JobDetails",
                "Index",   // <-- ActionMethod
                "JobDetails",  // <-- Controller Name.
                  new { id = 1234 }
                )</li>

但我查看源代码时会显示此链接

代码语言:javascript
复制
<li><a href="/Coordination?Length=10" id="1234">JobDetails</a></li>

其中,协调是我的控制器名称,我在协调控制器上有这些选项卡,动作名称(ViewName)是索引。

我不确定为什么我将控制器的名称命名为协调,即使我将其命名为JobDetails。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-04 00:19:29

这是因为您使用了错误的重载方法。试着这样做:

代码语言:javascript
复制
    <li>
    @Html.ActionLink
    (
        "JobDetails", 
        "Index",   // <-- ActionMethod 
        "JobDetails",  // <-- Controller Name. 
        new { id = 1234 },
        null // pass a null value for the htmlAttributes object
    )
    </li>

最初的重载方法是this

代码语言:javascript
复制
public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    Object routeValues,
    Object htmlAttributes
)

从上面的参数名可以看出,您传入了"JobDetails“作为链接文本,依此类推。这就是为什么您要获得呈现的标记。

但是通过使用this重载,您只需为htmlAttributes对象传递null即可获得所需的标记:

代码语言:javascript
复制
public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    string controllerName,
    Object routeValues,
    Object htmlAttributes
)
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9131804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档