ASP.NET MVC 5中的自定义文件夹结构

马修·伦兹(Matthew Renze)

我试图确定是否有可能(或实际)在ASP.NET MVC 5中实现Bob叔叔的尖叫体系,而不是使用默认文件夹结构。

以下是对“尖叫的体系结构”的描述的链接:http : //blog.8thlight.com/uncle-bob/2011/09/30/Screaming-Architecture.html

假设的文件夹结构如下所示:

  • 顾客
    • 控制器
      • CustomerController.cs
    • 楷模
      • 客户.cs
    • 观看次数
      • Index.cshtml
      • Details.cshtml
      • Update.cshtml
  • 雇员
    • 控制器
      • EmployeesController.cs
    • 楷模
      • Employee.cs
    • 观看次数
      • Index.cshtml
      • Details.cshtml
      • Update.cshtml
  • 共享
    • 观看次数
      • _Layout.cshtml
      • Error.cshtml
  • _ViewStart.cshtml
  • Web.config

相应的URL路由如下所示:

我创建了一个自定义的RazorViewEngine,并添加了适当的视图位置格式(例如“〜/ {1} / Views / {0} .cshtml”)和部分视图位置格式(例如“〜/ Shared / Views / {0}”)。 cshtml”)。我还将共享的_ViewStart.cshtml移到了根目录,并将Views / Shared文件夹的web.config与根级别的web.config合并,以避免必须在所有View文件夹中复制这两个文件。

一切正常,但是,如果我尝试导航到索引页面(例如http://www.example.com/employees/),则会收到403.14错误(禁止访问)。所有其他路由(包括http://www.example.com/employees/index)都可以正常工作。

我的猜测是IIS明确阻止了到控制器索引方法的路由,因为URL与文件系统中的文件夹重合并且默认情况下禁用了目录浏览。但是,如果启用目录浏览,它实际上会将我带到实际的目录列表,而不是路由到控制器的index方法。

我可以将“客户和雇员”文件夹移动到子文件夹中(即,将它们移出根目录),并且一切正常,但是我想尝试将这些文件夹保持在顶层(根据《尖叫建筑指南》)。

有人对此问题有解决方案吗?

请注意,MVC Areas不是我正在寻找的解决方案,因为它不允许上述文件夹结构(即,以高级用例和视图命名的顶级文件夹,这些视图直接包含在Views文件夹中而不是在Views文件夹中)子文件夹)。

詹姆斯·桑皮卡

我打赌您对IIS的看法是正确的。如果您有两个路径映射到同一资源,则首先在IIS端检查物理路径。

我在研究路由配置时发现了RouteExistingFiles属性RouteCollection并认为这可以工作。

我将该值设置为,true并在项目中使用一个空文件夹在本地进行了测试,一条路由重定向到Home/Index,然后导航到localhost:xxx/MyFolder它工作正常。

因此,您所需要做的就是将此属性设置为true,以使其首先选择Asp.net路由而不是物理路由。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP MVC 5 FilterConfig用于子文件夹中具有视图的自定义异常

来自分类Dev

创建自定义路由层次结构ASP.NET MVC 5

来自分类Dev

创建自定义路由层次结构ASP.NET MVC 5

来自分类Dev

ASP.NET MVC 5自定义错误页面

来自分类Dev

ASP.NET MVC中的自定义JSON结果

来自分类Dev

ASP.NET MVC中的自定义错误页面

来自分类Dev

asp.net core mvc 中的自定义授权

来自分类Dev

如何拒绝访问ASP.Net MVC 5中的特定文件夹

来自分类Dev

如何将LocalDb连接到ASP.NET MVC 5中的AppData文件夹

来自分类Dev

如何在ASP.NET MVC5中创建自定义支架模板?

来自分类Dev

ASP.NET MVC 5中的自定义oAuth客户端

来自分类Dev

自定义MVC5 ASP.NET Identity中的cookie值

来自分类Dev

在_Layout.cshtml ASP.NET MVC 5中启用自定义脚本

来自分类Dev

如何在ASP.NET MVC 5中注册自定义主体类型?

来自分类Dev

自定义MVC5 ASP.NET Identity中的cookie值

来自分类Dev

在MVC 5中的ASP.NET Identity 3上管理自定义用户属性

来自分类Dev

如何使ASP.net MVC 5中的自定义分页取决于引导程序?

来自分类Dev

如何将自定义css文件添加到asp.net mvc中?

来自分类Dev

ASP.NET MVC,AngularJS,Bower和部署站点文件夹结构

来自分类Dev

ASP.Net MVC 4项目文件夹体系结构

来自分类Dev

使用子文件夹的Asp.net MVC路由

来自分类Dev

使用子文件夹的Asp.net MVC路由

来自分类Dev

在asp.net mvc5中的何处添加分部类?在哪个文件夹中?

来自分类Dev

asp.net mvc自定义子路由

来自分类Dev

ASP.NET MVC自定义视图路由

来自分类Dev

带线程的ASP.NET MVC自定义验证

来自分类Dev

自定义路由ASP.NET MVC

来自分类Dev

ASP.NET Core MVC自定义站点变量

来自分类Dev

ASP.Net MVC Kendo网格的自定义分页

Related 相关文章

热门标签

归档