这里的模块化我的意思是像这样的基于特征的布局:
(我读过有关地区的内容。我不是在问区域)
例如,使用 NancyFx 可以轻松实现此功能。至于 ASP.NET MVC ,我试图通过替换其视图搜索路径来扩展标准RazorViewEngine
。结果视图被找到但是他们引用的静态内容无法加载( 404错误,并显示没有相应的控制器将请求与/assets/css/dashboard.css
匹配)
我看过很多帖子,其中人们实现了自定义视图引擎,重新定义了CreateView
,FindView
,GetGeneralNameFrom
方法等等。但我并没有完全了解 ASP.NET MVC约定。
为了让控制器与其功能相关的代码(服务,视图,模型)位于同一个功能文件夹中,应该更改哪些约定?
我在询问我必须更改/替换/扩展的内部结构。
答案 0 :(得分:0)
您不得将视图放在代码文件中。在MVC中,您应该有单独的文件夹:Models, Controllers, Views
。 MVC引擎搜索Views
文件夹中的视图。
在您的Views
文件夹中,您需要有子文件夹Authentication
和Dashboard
。在每个子文件夹中,您将index
页面和其他页面仅与此应用程序部分相关。例如,如果您有用于信息中心编辑的单独视图edit
,请将其放在Views - Dashboard
同样适用于控制器'类。您有Controllers
个文件夹和子文件夹Dashboard, Authentication
。同样的规则适用于模特'类
对于所有.js
个文件,您应该有Scripts
个文件夹,对于所有css规则 - Content
文件夹
您不需要自定义ViewEngine
来呈现页面。只有在你有一些非通用的模板或一些业务需求时才需要它