代码之家  ›  专栏  ›  技术社区  ›  Jeff Martin

如何在MVC中呈现备用子视图?

  •  1
  • Jeff Martin  · 技术社区  · 15 年前

    我刚接触MVC,所以请不要以为我知道什么。

    我正在挑选一个已经用MVC编写了很多东西的项目,我正在尝试为它添加一些东西。

    在一个视图上有一条线

    <% Html.RenderAction("List", "Image", new { id = Model.JobId, all = true });  %>
    

    我在图像目录下看到一个list.ascx。我在视图控制器上看到了List方法。

    我想将该列表方法的结果呈现到另一个ascx文件中。(assignimage.ascx)我意识到我可以在控制器上添加另一个方法,但是看起来我应该有一种使用相同方法但视图不同的方法。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Sailing Judo    15 年前

    如果您不介意重用(或复制)一些代码,我可能会做一个新的操作来处理这个问题。

    我不认为我会将该操作更改为传入另一个参数(该操作已经采用了2:jobid和boolean)。您可能需要在某个地方更改现有的代码来解释第三个参数。

    假设这个操作只是给你一个记录列表,我不知道用一行LINQ添加一个新的操作(或者不管你得到的是什么数据)会如何冒犯DRY……尤其是当它通过在一个操作中不混合太多的函数使代码更容易维护时。如果它太令人讨厌,那么您可以重构操作以调用一些公共方法。

        2
  •  2
  •   Yuriy Faktorovich    15 年前

    在你的行动方法中

    if (isList) return PartialView("List"); else return PartialView("AssignImage");

    推荐文章