【问题标题】:Route URL not Properly Working for an Area路由 URL 不适用于某个区域
【发布时间】:2015-01-25 18:10:42
【问题描述】:

我添加了第二个区域,如下图所示;

public class MerchantAreaRegistration : AreaRegistration
{
    public override string AreaName
    {
        get
        {
            return "Merchant";
        }
    }

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Merchant_default",
            "Merchant/{controller}/{action}/{id}",
            new { controller = "Home", action = "Index", area = "Merchant", id = "" },
            new[] { "Dplus.Merchant.Controllers" }
        );
    }
}

当我以 http://localhost:7190/merchant/home 的形式输入网址时。一切正常,但是当我输入 http://localhost:7190/merchant (没有控制器名称)时,我收到以下错误;

HTTP 错误 403.14 - 禁止 Web 服务器配置为不列出此目录的内容。

我有一个类似的区域叫做 “Admin” 并且确切的代码适用于它。但对于第二个领域,它没有。

【问题讨论】:

  • 你在根目录中是否有一个名为merchant 的文件夹,我怀疑你有,因为它试图列出其中的内容。
  • 您的文件夹中有一个名为 Merchant 的目录。 MVC 将通过它并尝试列出内容。
  • 是的,因为我使用了自定义视图引擎。
  • 问题是那个目录名,我必须把它改成别的。谢谢大佬!

标签: c# asp.net-mvc asp.net-mvc-routing


【解决方案1】:

根据@Erik 的评论,我的区域名称和目录名称相同。基本上我使用的是自定义视图引擎。所以我所做的是将目录名称更改为 MVC 区域名称以外的名称,例如 AdministrationMerchant
现在浏览相同的 URL 就可以了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-15
    • 2020-09-01
    • 1970-01-01
    • 2013-09-20
    • 2019-04-08
    • 2016-03-28
    • 1970-01-01
    • 2015-01-28
    相关资源
    最近更新 更多