Asp.net mvc 3 ASP.Net MVC3路由保留字?
我有一个定义了标准路由的ASP.NETMVC应用程序。该应用程序为我们的数据库编辑元数据。url方案为: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路由的保留字。有人知道情况是否如此
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中使用这些单词