我有三个控制器,有三个动作:
- 列表
- 查看
- 信息
控制器之间的唯一区别是所选布局和url。
首先我使用了RenderPartial
,但它仍然有很多代码重复(主要是在操作中)。
所以我想以某种方式避免这种情况——例如,只创建一个控制器并配置路由,这样它就可以为不同的url选择正确的布局。
控制器是如何定义布局的?这是一种不好的做法。请记住,在MVC中,VIEW层用于定义布局。
每个视图文件都可以使用覆盖默认的共享布局文件
@{
Layout = "path/to/your/layout.cshtml";
}
例如,您可以使用ViewBag动态地提供该值。
您可以指定应由控制器使用的视图文件。
return View("~/Views/Posts/Index.cshtml", db.Posts.ToList())
通过这种方式,您可以将相同的模板用于不同的控制器方法。