如何处理与MVC“区域”部分的链接

时间:2019-02-05 12:25:39

标签: c# asp.net model-view-controller

我已经使用'AdminLte'模板在C#MVC中开发了一个项目,并且将Areas用于子模块。

当我从主页(http://localhost:9760/Home/Index)访问链接时,它的工作原理如下http://localhost:9760/Manage/ChangePassword

但是当我从Area ex访问相同的链接时:'AirSurveillance'http://localhost:9760/AirSurveillance/Manage/ChangePassword,它无法正常工作并给出404错误,因为它试图在“ AirSurveillance”区域中找到“ Manage”控制器(不存在)

这是我自动生成的“ SecurityClearanceAreaRegistration.cs”文件

namespace IIMS.Areas.SecurityClearance
{
    public class SecurityClearanceAreaRegistration : AreaRegistration 
    {
        public override string AreaName 
        {
            get 
            {
                return "SecurityClearance";
            }
        }

        public override void RegisterArea(AreaRegistrationContext context) 
        {
            context.MapRoute(
                "SecurityClearance_default",
                "SecurityClearance/{controller}/{action}/{id}",
                new { action = "Index", id = UrlParameter.Optional }
            );
        }
    }
}

请帮助我。

1 个答案:

答案 0 :(得分:0)

使用区域时,您的链接将需要指定您要指向的控制器/动作的区域。如果要在这些区域之外使用控制器,请指定一个空白区域。例如...

@Html.ActionLink("ChangePassword", "Manage", new { Area = ""})