ASP.NET MVC中的自定义文件夹结构5
我试图确定在ASP.NET MVC 5中是否可能(或实用)实现Bob叔叔尖叫架构,而不是使用默认文件夹结构.
这是一个链接到尖叫建筑:http://blog.8thlight.com/uncle-bob/2011/09/30/Screaming-Architecture.html的描述 假设的文件夹结构将如下所示: 根 >客户 >控制器 > CustomerController.cs >模型 > Customer.cs >视图 > Index.cshtml >员工 >控制器 > EmployeesController.cs >模型 > Employee.cs >视图 > Index.cshtml >共享 >视图 > _Layout.cshtml > _ViewStart.cshtml 相应的URL路由将如下所示: > http://www.example.com/customers/ =>客户指数 我创建了一个自定义的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与文件系统中的文件夹重合,默认情况下禁用目录浏览.但是,如果我启用目录浏览,它实际上需要我到实际的目录列表,而不是路由到控制器的索引方法. 我可以将“客户”和“员工”文件夹移动到子文件夹中(即将其移出根目录),并且一切正常,但我想尝试将这些文件夹保留在顶层(根据尖叫架构指南). 有没有人有解决这个问题的解决方案? 请注意,MVC区域不是我正在寻找的解决方案,因为它不允许上述文件夹结构(即顶级文件夹以高级用例命名,并且直接包含在Views文件夹中,而不是在子文件夹). 解决方法
我打赌你是正确的IIS然后.如果您有两条路径映射到同一资源,则首先在IIS侧检查物理路径.
我正在挖掘路线配置,并在RouteCollection上找到属性RouteExistingFiles,并认为这可以工作. 我将值设置为true,并在本地测试项目中的空文件夹,重定向到Home / Index的路由,并导航到localhost:xxx / MyFolder.它工作正常 那么所有你需要做的就是将此属性设置为true,以便首先选择Asp.net路由而不是物理路由. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – Azure ACS – 最佳实践实施
- 在ASP.Net动态数据中使用Computed Property作为DisplayColu
- .Net Core微服务入门全纪录(七)——IdentityServer4-授权
- asp.net – 通过CSS重置HTML元素的高度
- 在asp.net中按日期对directoryinfo中的文件进行排序
- asp.net-mvc – ASP.NET MVC SiteMap提供程序-Razor
- razor-pages – 何时使用LocalRedirect与RedirectToPage
- asp.net – Session不会保留值并始终返回null
- asp.net-mvc – 更改链接上的部分视图
- 什么是ASP.NET的最佳部署策略
- asp.net – 在VS2012中使用动态数据实体网站时出
- asp.net – Dotnetopenauth oAuth服务提供商的解
- asp.net-mvc-3 – 处理DbContext后的问题
- 在使用ASP.NET会话时是否可以强制请求并发?
- asp.net – 使用listview进行LINQ和分页
- asp.net-mvc – MVC 3布局页面,Razor模板和下拉列
- asp.net – 从Classic ASP调用需要.NET类型的.NE
- asp.net-mvc-5 – 我们也可以在Windows /桌面应用
- asp.net – 使用NAnt中的ASP编译器构建ASP .Net
- asp.net – 将web应用程序的项目编译成dll