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