我会尝试简短,我发现在尝试创建一个名称和网址为properties
的自定义路由时,我的ASP.NET MVC应用程序返回了在找到路径时找不到的404文件。
我推断这很可能是因为我在磁盘上有一个名为 Properties 的文件夹,这当然是一个自动创建的常见asp.net文件夹。我找到了其他人this problem on SO遭遇的人,但看起来没有解决方案,只是说你的路线有所不同!
当然这是疏忽,还是必须有解决方法?显然,你可能需要许多常见的目录作为路由和/或文件夹,我们已经知道其中一些像属性可能无法删除!我也理解我们需要将真实文件夹作为URL来兑现,但我觉得在查看磁盘上的文件夹之前,路由应该优先。
如果有人对如何实现这一点有任何想法,将不胜感激。 :)
答案 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在发布时应该会有所帮助!
我想更多地尝试这个,因为我认为路由引擎优先于文件系统对象,尤其是在设置通配符映射时。