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 – 进程服务应用程序池“经典.NET AppPool”遭受与
- asp.net-mvc – 首先通过NuGet尝试StructureMap和MVC3
- asp.net – 将HTML5占位符文本添加到文本框.net
- asp.net-mvc – 如何在ASP MVC中自定义Html.ValidationMess
- asp.net-core – 如何在.Net Core应用程序中读取web.config
- asp.net-mvc-3 – SQL Server 2008连接字符串,用于实体框架
- asp.net-mvc – 使用jQuery ajax / load提交数组参数
- asp.net-web-api – Asp.net WebApi将UTC时间字符串反序列化
- asp.net-mvc – Asp.Net MVC 2 Label自定义文本
- asp.net – UserControl Viewstate在回发后丢失所有值
- asp.net-mvc – ASP.NET MVC验证的唯一性
- asp.net – 从通用列表中将ListItem添加到DropDo
- .net – 应用程序池限制
- 为什么在发送到asp.net web方法之前jquery不将我
- ASP.NET MVC 4 / Web API – 为Accepts插入Razor
- asp.net-mvc – ASP.NET MVC Preview 5 on Mono
- ASP.net – 多个上传与jQuery多文件上传插件
- asp.net-core – 如何忽略MVC6中的路由
- asp.net – 找出.NET创建的HTML元素的客户端ID?
- ASP.NET:在URL中隐藏查询字符串
