我有一个菜单,菜单中包含许多可选选项,但是由于某些原因,如果我选择这些项目中的任何一个,我总是会重定向到最后一个操作的控制器方法,即注销页面。
我的清单代码如下:
<li class="edit">
<i class="icon fa fa-cog"></i>
<a href="@Url.Action("Index", "Manage")">My Account</a>
</li>
<li class="edit">
<i class="icon fa fa-cog"></i>
<a href="@Url.Action("Users", "Administrator")">Admin Tool</a>
</li>
<li class="edit">
@using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm" })){
@Html.AntiForgeryToken()
<a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>
}
无论我将这些操作放置在哪个顺序中,所有这些操作都总是会采用注销方法。
我也不知道这是否会影响任何东西,但是在我的路由配置中,我有以下内容:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Account", action = "Index", id = UrlParameter.Optional }
);
也许找不到控制器方法的原因是因为路由仅提到了帐户控制器?
不,那应该不是问题。该default
路由值表示,如果在所提到的参数没有指定值要求必须去url
。如果你在你的项目中有授权,尝试装饰你试图让行动与'[AllowAnonymous]'
或Authorize(Roles='a user role')]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句