我希望有一个名为'properties'的路由,但收到404错误(检测磁盘上存在文件夹)

时间:2010-07-28 00:20:08

标签: .net asp.net asp.net-mvc asp.net-mvc-routing

我会尝试简短,我发现在尝试创建一个名称和网址为properties的自定义路由时,我的ASP.NET MVC应用程序返回了在找到路径时找不到的404文件。

我推断这很可能是因为我在磁盘上有一个名为 Properties 的文件夹,这当然是一个自动创建的常见asp.net文件夹。我找到了其他人this problem on SO遭遇的人,但看起来没有解决方案,只是说你的路线有所不同!

当然这是疏忽,还是必须有解决方法?显然,你可能需要许多常见的目录作为路由和/或文件夹,我们已经知道其中一些像属性可能无法删除!我也理解我们需要将真实文件夹作为URL来兑现,但我觉得在查看磁盘上的文件夹之前,路由应该优先。

如果有人对如何实现这一点有任何想法,将不胜感激。 :)

2 个答案:

答案 0 :(得分:1)

查看.NET参考源代码,看起来好像Properties对于ASP.NET运行时来说是特殊的(HttpRuntime.cs具有bin的字符串常量,{{ 1}}等。)。

尝试将物理App_Code文件夹重命名为Properties,并在其中编辑文件的命名空间以进行匹配。您还需要编辑App_Properties / .csproj文件,因为VS会为此“特殊”文件夹隐藏重命名命令。

完成此操作后,使用项目属性选项卡中的某些内置行为(如创建默认设置和资源)将导致重新创建.vbproj文件夹,因此您必须打开Properties.settings个文件直接编辑它们。

答案 1 :(得分:1)

如果删除asp.net mvc项目中的属性文件夹,它将按照描述工作。

应该注意的是,在IIS下运行时,您描述的行为不会出现(并不是说这实际上是一个解决方案)。

IISExpress在发布时应该会有所帮助!

我想更多地尝试这个,因为我认为路由引擎优先于文件系统对象,尤其是在设置通配符映射时。