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

时间:2016-06-17 06:54:21

标签: c# asp.net-mvc url.action routeconfig

我在菜单中有一个菜单,其中包含许多可选项,但出于某种原因,如果我选择其中任何一项,我总会被重定向到最后一个操作的控制器方法,即退出页面。

我的清单代码如下:

<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 }
        );

可能是找不到控制器方法的原因是因为路由只提到了帐户控制器?

1 个答案:

答案 0 :(得分:0)

不,这不应该是个问题。如果没有为default中提到的参数指定值,则url路由值会显示请求必须到达的位置。如果您在项目中拥有授权,请尝试使用'[AllowAnonymous]'Authorize(Roles='a user role')]

尝试修改您尝试访问的操作