如何使用相同的操作为不同的url应用布局



我有三个控制器,有三个动作:

  • 列表
  • 查看
  • 信息

控制器之间的唯一区别是所选布局和url。

首先我使用了RenderPartial,但它仍然有很多代码重复(主要是在操作中)。

所以我想以某种方式避免这种情况——例如,只创建一个控制器并配置路由,这样它就可以为不同的url选择正确的布局。

控制器是如何定义布局的?这是一种不好的做法。请记住,在MVC中,VIEW层用于定义布局。

每个视图文件都可以使用覆盖默认的共享布局文件

@{
   Layout = "path/to/your/layout.cshtml";  
}

例如,您可以使用ViewBag动态地提供该值。

您可以指定应由控制器使用的视图文件。

return View("~/Views/Posts/Index.cshtml", db.Posts.ToList())

通过这种方式,您可以将相同的模板用于不同的控制器方法。

最新更新