Asp.net mvc 3 ASP.Net MVC3路由保留字?

Asp.net mvc 3 ASP.Net MVC3路由保留字?,asp.net-mvc-3,asp.net-mvc-routing,reserved-words,Asp.net Mvc 3,Asp.net Mvc Routing,Reserved Words,我有一个定义了标准路由的ASP.NETMVC应用程序。该应用程序为我们的数据库编辑元数据。url方案为: http://localhost/tables/Edit/[Name of Table Here] 这将调用tables控制器上的edit函数,并将表的名称作为参数id传入。除了名为con的表之外,所有表都可以正常工作。以下URL将生成404: http://localhost/tables/Edit/con 我唯一能想到的是,con必须是某种关于MVC路由的保留字。有人知道情况是否如此

我有一个定义了标准路由的ASP.NETMVC应用程序。该应用程序为我们的数据库编辑元数据。url方案为:

http://localhost/tables/Edit/[Name of Table Here]
这将调用
tables
控制器上的
edit
函数,并将表的名称作为参数
id
传入。除了名为
con
的表之外,所有表都可以正常工作。以下URL将生成404:

http://localhost/tables/Edit/con

我唯一能想到的是,
con
必须是某种关于MVC路由的保留字。有人知道情况是否如此,以及是否有其他保留字需要避免吗?

是的,
con
是保留字,因此不能放在MVC路由中。以下是一篇博客文章,描述了一项工作:

还有一篇文章详细说明了保留字背后的原因:


CON是一个保留字,如COM1、COM2、COM3、COM4、LPT1、LPT2、AUX、PRN、NUL

在使用ajax请求时,我也遇到了这个问题。我通过将“-”字符放在参数的开头来解决这个问题,然后在代码隐藏中替换它

但这是一个愚蠢的解决方案,只需添加

    <system.web>
        <httpRuntime relaxedUrlToFileSystemMapping="true"/>
         ......
    </system.web>

......
您可以安全地在URL中使用这些单词