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

时间:2012-03-06 09:10:39

标签: asp.net-mvc-3

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

  • 列表
  • 查看
  • 信息

控制器之间的唯一区别是选择布局和网址。

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

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

2 个答案:

答案 0 :(得分:1)

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

每个视图文件都可以使用

覆盖默认的共享布局文件
@{
   Layout = "path/to/your/layout.cshtml";  
}

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

答案 1 :(得分:0)

您可以指定应由Controller使用的“查看文件”。

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

这样,您可以将相同的模板用于不同的Controller方法。