ASP.net MVC 中 URL 中的保留关键字,如 CON、PRN、NUL
reserved keywords like CON, PRN, NUL in URL in ASP.net MVC
我试图在 ASP.net MVC 中使用 id 作为 CON 命中 URL。
路由
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }// Parameter defaults
);
出现以下错误
2015-04-29 08:25:22,325 [8] FATAL Myapplication.Global - Application ERROR === (null)
System.Web.HttpException (0x80004005)
at System.Web.CachedPathData.GetPhysicalPath(VirtualPath virtualPath)
at System.Web.CachedPathData.GetConfigPathData(String configPath)
at System.Web.HttpContext.GetFilePathData()
at System.Web.HttpContext.GetRuntimeConfig()
at System.Web.HttpContext.get_ImpersonationToken()
at System.Web.ClientImpersonationContext.Start(HttpContext context, Boolean throwOnError)
at System.Web.ThreadContext.AssociateWithCurrentThread(Boolean setImpersonationContext)
at System.Web.HttpApplication.OnThreadEnterPrivate(Boolean setImpersonationContext)
at System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(Exception error)
有几个保留关键字,如 CON、PRN、NUL 等(我相信这些保留在 Windows OS 系列中是为了向后兼容)。只需添加到您的 web.config:
<system.web>
<httpRuntime relaxedUrlToFileSystemMapping="true"/>
......
</system.web>
应该可以解决问题。
我试图在 ASP.net MVC 中使用 id 作为 CON 命中 URL。
路由
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }// Parameter defaults
);
出现以下错误
2015-04-29 08:25:22,325 [8] FATAL Myapplication.Global - Application ERROR === (null)
System.Web.HttpException (0x80004005)
at System.Web.CachedPathData.GetPhysicalPath(VirtualPath virtualPath)
at System.Web.CachedPathData.GetConfigPathData(String configPath)
at System.Web.HttpContext.GetFilePathData()
at System.Web.HttpContext.GetRuntimeConfig()
at System.Web.HttpContext.get_ImpersonationToken()
at System.Web.ClientImpersonationContext.Start(HttpContext context, Boolean throwOnError)
at System.Web.ThreadContext.AssociateWithCurrentThread(Boolean setImpersonationContext)
at System.Web.HttpApplication.OnThreadEnterPrivate(Boolean setImpersonationContext)
at System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(Exception error)
有几个保留关键字,如 CON、PRN、NUL 等(我相信这些保留在 Windows OS 系列中是为了向后兼容)。只需添加到您的 web.config:
<system.web>
<httpRuntime relaxedUrlToFileSystemMapping="true"/>
......
</system.web>
应该可以解决问题。