MVC - 如何发送到包含列表的局部视图 ViewModel
MVC - how to send to the partial view ViewModel containing a list
我是 MVC 的初学者,我有一个 Web 应用程序,我在我的控制器中声明了一个对象列表(来自访问者的反馈),然后将其发送到显示它的视图。看起来像这样。声明:
public class TrekFeedbackItem
{
public string trekid { get; set; }
public string comment { get; set; }
public string author { get; set; }
public TrekFeedbackItem(string trekid, string comment, string author)
{ this.trekid = trekid;
this.comment = comment;
this.author = author;
}
}
和用法:
List<TrekFeedbackItem> feedbackList = new List<TrekFeedbackItem>
{
//constructor called, data entered into the list
}
return View(trekname, feedbackList);
但是,现在我还需要传递另一个列表,我们称之为 relatedblogsList。作为第一步,我决定将我的反馈列表封装到 ViewModel 中(一旦它起作用,添加另一个不同对象的列表。)
public class TrekViewModel
{
public List<TrekFeedbackItem> feedback { get; set; }
}
并像这样填写数据:
TrekViewModel trek = new TrekViewModel();
trek.feedback = new List<TrekFeedbackItem>
{
//insert data here
};
return View(view, trek);
问题是 - 如何将此模型发送到局部视图以及如何访问它?
非常感谢
您可以像下面这样将数据传递到分部视图中
来自控制器return这个视图:
return PartialView("_partial_viewname", trek);
然后在局部视图的开头:
@model Models.TrekViewModel
之后您可以在局部视图中使用 Model.feedback
。
将您的动作控制器的 return 类型设置为“PartialView”而不是“View”。
return PartialView("_yourPartialViewName", yourObject);
以防万一,如果应用程序没有按预期工作,请构建它并 re-run 它。
我是 MVC 的初学者,我有一个 Web 应用程序,我在我的控制器中声明了一个对象列表(来自访问者的反馈),然后将其发送到显示它的视图。看起来像这样。声明:
public class TrekFeedbackItem
{
public string trekid { get; set; }
public string comment { get; set; }
public string author { get; set; }
public TrekFeedbackItem(string trekid, string comment, string author)
{ this.trekid = trekid;
this.comment = comment;
this.author = author;
}
}
和用法:
List<TrekFeedbackItem> feedbackList = new List<TrekFeedbackItem>
{
//constructor called, data entered into the list
}
return View(trekname, feedbackList);
但是,现在我还需要传递另一个列表,我们称之为 relatedblogsList。作为第一步,我决定将我的反馈列表封装到 ViewModel 中(一旦它起作用,添加另一个不同对象的列表。)
public class TrekViewModel
{
public List<TrekFeedbackItem> feedback { get; set; }
}
并像这样填写数据:
TrekViewModel trek = new TrekViewModel();
trek.feedback = new List<TrekFeedbackItem>
{
//insert data here
};
return View(view, trek);
问题是 - 如何将此模型发送到局部视图以及如何访问它?
非常感谢
您可以像下面这样将数据传递到分部视图中
来自控制器return这个视图:
return PartialView("_partial_viewname", trek);
然后在局部视图的开头:
@model Models.TrekViewModel
之后您可以在局部视图中使用 Model.feedback
。
将您的动作控制器的 return 类型设置为“PartialView”而不是“View”。
return PartialView("_yourPartialViewName", yourObject);
以防万一,如果应用程序没有按预期工作,请构建它并 re-run 它。