ASP.NET MVC中的2个控制器和1个视图

时间:2009-10-02 07:49:46

标签: asp.net-mvc model-view-controller

我有2个控制器,任务和用户。

我需要为“向用户创建任务”创建一个视图。所以我需要一起“用户列表”和“创建任务”视图。

通常视图仅从1个类继承。

如何创建使用2个类的视图?

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

您的观点不能也不应该从2个类继承。

为您的用户创建一个包含任务视图模型列表的视图模型。

答案 1 :(得分:0)

您可以将每个视图(用户列表和创建任务)实现为部分视图(.ascx用户控件),并从View(.aspx页面)中调用每个视图。

使用RenderPartial方法渲染局部视图:

this.Html.RenderPartial("UserList");
this.Html.RenderPartial("CreateTask");

这将允许您重用和组合不同视图(页面)的视图。

正如AmisL指出的那样,您可以将ViewModel的不同部分传递给每个局部视图。

答案 2 :(得分:0)

View可以接收任何类作为Model,所以只需编写一个自定义类,如:

public class UserListAndTasks
{
    public IQuerable<User> UserList;
    public Task Task;
}

然后,在您的视图中,您可以使用partials:

<%= Html.RenderPartial("UserList", Model.UserList); %>
<%= Html.RenderPartial("CreateTask", Model.Task); %>