如何 link Url.Action 到特定的控制器方法
How to link Url.Action to a specific controller method
我有一个菜单,菜单中有许多 select 可用选项,但出于某种原因,如果我 select 这些项目中的任何一个,我总是被重定向到最后一个控制器方法action 即注销页面。
我的列表代码如下:
<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 }
);
也许找不到控制器方法是因为路由只提到了帐户控制器?
不,这应该不是问题。如果没有为 url
中提到的参数指定值,default
路由值显示请求必须到达的位置。如果您在项目中获得授权,请尝试使用 '[AllowAnonymous]'
或 Authorize(Roles='a user role')]
装饰您尝试进行的操作
我有一个菜单,菜单中有许多 select 可用选项,但出于某种原因,如果我 select 这些项目中的任何一个,我总是被重定向到最后一个控制器方法action 即注销页面。
我的列表代码如下:
<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 }
);
也许找不到控制器方法是因为路由只提到了帐户控制器?
不,这应该不是问题。如果没有为 url
中提到的参数指定值,default
路由值显示请求必须到达的位置。如果您在项目中获得授权,请尝试使用 '[AllowAnonymous]'
或 Authorize(Roles='a user role')]