繁体   English   中英

如何将Url.Action链接到特定的控制器方法

[英]How to link Url.Action to a specific controller method

我有一个菜单,菜单中包含许多可选选项,但是由于某些原因,如果我选择这些项目中的任何一个,我总是会重定向到最后一个操作的控制器方法,即注销页面。

我的清单代码如下:

<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')]装饰您要尝试的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM