Asp.net mvc ASP.Net MVC4路由不工作-保留字?

Asp.net mvc ASP.Net MVC4路由不工作-保留字?,asp.net-mvc,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc Routing,简言之,我有一个MVC web应用程序,它有一个代理类,用于在登录用户的上下文中处理对另一个web应用程序的请求 这一切都很好,除了其他web应用程序的一些传出链接(即指向我的MVC应用程序的入站链接)包含url“/视图” 这些请求应根据以下路径进行映射: routes.MapRoute( name: "TableauViews", url: "views", defaults: new { controll

简言之,我有一个MVC web应用程序,它有一个代理类,用于在登录用户的上下文中处理对另一个web应用程序的请求

这一切都很好,除了其他web应用程序的一些传出链接(即指向我的MVC应用程序的入站链接)包含url“/视图”

这些请求应根据以下路径进行映射:

        routes.MapRoute(
            name: "TableauViews",
            url: "views",
            defaults: new { controller = "Tableau", action = "Views" }
        );
但它从未发生过。如果我将控制器操作的名称更改为其他名称,并在浏览器中输入相应的url,则会正常工作


这让我怀疑,映射包含单词“views”作为其路径一部分的url时出现了一些问题。有人能证实这一点吗?

我找不到任何明确的说法,说“视图”是一个保留词,但这篇文章描述了如何放松关于哪些词可以使用的规则

问题在于操作顺序。视图是一个物理文件夹和一个路由。在路由处理程序获取URL之前,ASP.NET HttpHandler将读取web.config并阻止任何指向视图的内容。如果查看视图文件夹(视图实际存储的位置)中的web.config文件,您可能会看到如下内容:

<httpHandlers>
    <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>


请您发布一个完整的链接,好吗?我打赌它不仅仅是
/view
,对吧?我可以想象
~/views
不起作用,但是
~/mycontroller/views
我希望能起作用?~/views不起作用,但我也希望它能起作用,因为我已经根据OP映射了路由。如果我更改操作方法的名称(和路由url)在浏览器中导航到/views2时,将调用AQAction方法。是的,~/controller/views确实可以使用默认路由。谢谢。我试过了,但没有乐趣。
<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />

    <handlers>
        <remove name="BlockViewHandler"/>
        <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
</system.webServer>