Object 如何将集合传递给MVC2局部视图?

Object 如何将集合传递给MVC2局部视图?,object,collections,asp.net-mvc-2,asp.net-mvc-partialview,Object,Collections,Asp.net Mvc 2,Asp.net Mvc Partialview,如何将集合传递给MVC2局部视图? 我看到一个例子,他们使用了语法 <% Html.RenderPartial("QuestionPartial", question); %> 这只传入一个问题对象 如果我想在局部视图中输入几个问题,比如说,我想列出它们,该怎么办 我将如何传递几个问题?因为局部视图通常会放置在其他(主)视图中,所以您应该将主视图强键入一个类似以下内容的复合视图数据对象: public class MyViewData { public string I

如何将集合传递给MVC2局部视图? 我看到一个例子,他们使用了语法

<% Html.RenderPartial("QuestionPartial", question); %>

这只传入一个问题对象

如果我想在局部视图中输入几个问题,比如说,我想列出它们,该怎么办


我将如何传递几个问题?

因为局部视图通常会放置在其他(主)视图中,所以您应该将主视图强键入一个类似以下内容的复合视图数据对象:

public class MyViewData
{
    public string Interviewee { get; set }
    // Other fields here...
    public Question[] questions { get; set }
}
在控制器中:

var viewData = new MyViewData;
// Populate viewData object with data here.

return View(myViewData);
在你看来:

<% Html.RenderPartial("QuestionPartial", Model.questions); %>


然后在局部视图上使用。

与其传递
问题
,不如传递一组问题,例如
列表

通常,视图模型中会有一个
IEnumerable
属性——实际上,它可能是一个列表或一组问题对象。要在局部视图中使用它,只需将视图模型的属性作为模型传递给局部视图。分部应为强类型,以接受
IEnumerable
作为其模型

 <% Html.RenderPartial("QuestionPartial", Model.Questions ); %>

部分:

<%@ Page Language="C#"
         MasterPageFile="~/Views/Shared/Site.Master"
         Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Question>>" %>


嘿,femi,为什么不花几秒钟来接受你其他一些问题的答案呢。它不会花费很长时间,而且会让人们更倾向于为您提供答案。有关强类型视图模型的更多信息,请参见此处: