如何将集合传递给MVC 2局部视图? 我看到了一个他们使用语法的例子;
<% Html.RenderPartial("QuestionPartial", question); %>
这只传递了一个问题对象..
如果我想将几个问题传递到局部视图中,比方说,我想将它们列出来。
我如何传递几个问题?
答案 0 :(得分:1)
因为您的局部视图通常会放在其他(主)视图中,所以您应该将主视图强烈键入一个看起来像这样的复合ViewData对象:
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); %>
然后在局部视图上使用tvanfosson's advice。
答案 1 :(得分:0)
为什么不传递一组问题,而不是传递question
,而不是List<QuestionType>
?
答案 2 :(得分:0)
通常,您在视图模型中有IEnumerable<Question>
作为属性 - 实际上它可能是一个列表或一组Question对象。要在partial中使用它,只需将视图模型的属性作为模型传递给partial。部分应该是强类型的,以接受IEnumerable<Question>
作为它的模型。
<% Html.RenderPartial("QuestionPartial", Model.Questions ); %>
部分:
<%@ Page Language="C#"
MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Question>>" %>