Raj*_*esh 3 asp.net-mvc razor asp.net-mvc-3
我使用Jquery选项卡插件在我的视图中有选项卡.
我想要<li><a href="../JobDetails/Index/1234">JobDetails</a></li>
作为我的第一个标签.
为此我正在做
<li>@Html.ActionLink("JobDetails",
"Index", // <-- ActionMethod
"JobDetails", // <-- Controller Name.
new { id = 1234 }
)</li>
Run Code Online (Sandbox Code Playgroud)
但我查看源代码给我看这个链接
<li><a href="/Coordination?Length=10" id="1234">JobDetails</a></li>
Run Code Online (Sandbox Code Playgroud)
其中Coordination是我的控制器名称,我在Coordination控制器上有这些选项卡,Action name(ViewName)是Index.
我不确定为什么我将控制器名称作为协调,即使我将其命名为JobDetails.
小智 11
那是因为你使用了错误的重载方法.试试这个:
<li>
@Html.ActionLink
(
"JobDetails",
"Index", // <-- ActionMethod
"JobDetails", // <-- Controller Name.
new { id = 1234 },
null // pass a null value for the htmlAttributes object
)
</li>
Run Code Online (Sandbox Code Playgroud)
你原来的重载方法是这样的:
public static MvcHtmlString ActionLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
Object routeValues,
Object htmlAttributes
)
Run Code Online (Sandbox Code Playgroud)
从上面的参数名称可以看出,您将传递"JobDetails"作为链接文本,依此类推.这就是你获得渲染标记的原因.
但是,通过使用这种超载,您只需要传递null
的htmlAttributes
对象来获取你想要的标记:
public static MvcHtmlString ActionLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
string controllerName,
Object routeValues,
Object htmlAttributes
)
Run Code Online (Sandbox Code Playgroud)