1

我是使用 MVC 的新手,所以请不要以为我什么都知道。

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

在一个视图上有一条线

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

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

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

4

2 回答 2

2

在您的 Action 方法中

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

于 2009-12-22T18:28:21.263 回答
1

如果您不介意重用(或复制)某些代码,我可能会采取新的行动来处理这个问题。

我不认为我会更改操作以传入另一个参数(该操作已经采用 2:一个 jobId 和一个布尔值)。您可能必须在某处更改现有代码以考虑第三个参数。

假设该操作只是给您一个记录列表,我看不出如何使用一行 LINQ(或者您正在获取数据)添加一个新操作会冒犯 DRY ......尤其是如果它使代码更容易维护不要在一个动作中混合太多功能。如果它太冒犯了,那么您可以重构操作以调用一些常用方法。

于 2009-12-22T18:55:20.517 回答