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 它。