由于一些不寻常的要求,我在部分视图中获取控制器的名称并尝试使用控制器名称填充ActionLink,如下所示:
<table >
<tr>
<td style="vertical-align:bottom">
<div>
....
....
</div>
</td>
<td style="vertical-align:bottom">
<div>
....
....
</div>
</td>
</tr>
</table>
正在生成此HTML:
@{
var controllerName = this.ViewContext.RouteData.Values["controller"].ToString(); // controller name is "Office"
@Html.ActionLink("Login", "Login", controllerName, null, new { @class = "btn btn-primary" })
}
然而它应该生成这个HTML:
<a class="btn btn-primary" href="/Office">Login</a>
奇怪的是,该链接仍然指向<a class="btn btn-primary" href="/Office/Login">Login</a>
控制器中的Login
操作。到底发生了什么?