当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET MVC5拒绝映射与物理路径匹配的路由

如何解决《ASP.NETMVC5拒绝映射与物理路径匹配的路由》经验,为你挑选了1个好方法。

当我使用IIS Express调试/运行并浏览到时http://localhost:1234/People,IIS Express尝试浏览People目录而不是执行People路由,我收到403.14 HTTP错误.所以我StaticFile在Web.config中禁用了处理程序并刷新了.现在我收到404.4 HTTP错误:

404

我知道路由有效,因为如果我重命名RoutePrefix,例如PeopleTest,那么路由被执行,我得到了我期望的响应.

如何说服IIS/Express更喜欢MVC路由而不是静态文件/目录?

我正在使用属性路由; 相关代码如下:

Web.config文件


    
        
    

    
        
        
        
        
        
    

Global.asax中

GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AutofacConfig.Configure();

启动\ WebApiConfig

namespace MyApi.Startup {
    public static class WebApiConfig {
        public static void Register(HttpConfiguration config) {
            config.MapHttpAttributeRoutes();
        }
    }
}

人们\把PeopleController

namespace MyApi.People {
    [RoutePrefix("People")]
    public partial class PagesController : BaseController {
        [Route]
        [HttpGet]
        [ResponseType(typeof(IEnumerable))]
        public IHttpActionResult Get() { ... }
    }
}

请注意,由于我使用的是属性路由,因此我使用的是非标准文件夹结构.例如,我没有Controllers/Models/Views文件夹,而是每个业务区域都有根文件夹(例如,~\People包含"People"业务区域的控制器/模型/等).

我试过的

    设置RAMMFAR.

    删除并重新添加ExtensionlessUrlHandler-Integrated-4.0.

Josh M... 5

通过添加设置修复RouteExistingFiles = true:

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.RouteExistingFiles = true;
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    }
}

因此ASP.NET路由将处理所有路由:https://msdn.microsoft.com/en-us/library/system.web.routing.routecollection.routeexistingfiles(v = vs.110).aspx



1> Josh M...:

通过添加设置修复RouteExistingFiles = true:

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.RouteExistingFiles = true;
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    }
}

因此ASP.NET路由将处理所有路由:https://msdn.microsoft.com/en-us/library/system.web.routing.routecollection.routeexistingfiles(v = vs.110).aspx

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有