我有2个控制器,任务和用户。
我需要为“向用户创建任务”创建一个视图。所以我需要一起“用户列表”和“创建任务”视图。
通常视图仅从1个类继承。
如何创建使用2个类的视图?
有什么想法吗?
答案 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); %>