Asp.net core 在子文件夹中组织控制器和视图-最佳做法
我正在考虑在ASP.NET核心MVC应用程序中组织代码的最佳实践。我有两种类型的用户,医生和护士,将我的所有医生和护士控制器/视图组织到控制器/视图文件夹中自己的医生和护士子文件夹中是最佳做法吗 控制器:Asp.net core 在子文件夹中组织控制器和视图-最佳做法,asp.net-core,asp.net-core-mvc,Asp.net Core,Asp.net Core Mvc,我正在考虑在ASP.NET核心MVC应用程序中组织代码的最佳实践。我有两种类型的用户,医生和护士,将我的所有医生和护士控制器/视图组织到控制器/视图文件夹中自己的医生和护士子文件夹中是最佳做法吗 控制器: 控制器/医生/家庭控制器.cs 控制器/护士/家庭控制器.cs 观点: Views/Doctors/Home/Index.cshtml和其他视图文件 Views/Nurses/Home/Index.cshtml和其他视图文件 这是因为在每个医生/护士子文件夹级别,我都希望有自己的共享文
- 控制器/医生/家庭控制器.cs
- 控制器/护士/家庭控制器.cs
- Views/Doctors/Home/Index.cshtml和其他视图文件
- Views/Nurses/Home/Index.cshtml和其他视图文件
公共字符串索引()
{
返回视图(“~/Views/Doctors/Home/Index.cshtml”);
}
app.UseMvc(路由=>
{
routes.MapRoute(
名称:“默认”,
模板:“医生/{controller=Home}/{action=Index}/{id?}”);
});
\u ViewStart.cshtml
用于每个子文件夹。这项工作可以接受吗非常感谢@Craig W.为您推荐的区域。与旧版本的MVC不同,在Core中,右键单击项目时没有正式的“区域”选项。但是,您可以创建一个文件夹并将其命名为“区域”。在控制器内,您可以使用[区域(“医生”)]装饰每个控制器,以指定区域内的控制器 至于startup.cs,我可以使用以下内容:
app.UseMvc(路由=>
{
routes.MapRoute(
名称:“区域路线”,
模板:“{area:exists}/{controller}/{action}”);
routes.MapRoute(
名称:“默认”,
模板:“{area=Doctors}/{controller=Home}/{action=Index}”);
});
如果希望为视图或部分使用子文件夹,则语法为
public IActionResult Index()
{
return View("~/Views/Doctors/Index.cshtml");
}
我还没有机会玩核心MVC的东西。CraigW说,它是否已经取消了区域的概念。感谢您的建议,我将更新我的解决方案。虽然您的代码可能会提供问题的答案,但请在其周围添加上下文,以便其他人了解它的作用和原因。您能更详细地解释一下吗?项目树+控制器代码+视图树的确切外观是什么?当时可能是这样,但现在在visual studio中可用。右键单击项目>添加>新建脚手架项目。