如何在MVC 5中使用嵌套对象生成创建视图?

时间:2016-07-01 15:49:19

标签: asp.net-mvc razor asp.net-mvc-5 nested

最近,我正在研究如何在MVC 5中使用嵌套对象(对象列表)生成创建视图?

我的对象是这样的:

 public class MrSurvey
{
    public Guid Id { get; set; }
    [Required]
    [StringLength(128)]
    public string UserId { get; set; }
    [Required]
    [StringLength(75)]
    public string Title { get; set; }
    public DateTime CreatedDate { get; set; }
    public List<MrSurveyQuestion> Questions { get; set; }
}

public class MrSurveyQuestion
{      
    public Guid Id { get; set; }
    public Guid SurveyId { get; set; }
    [Required]
    [StringLength(250)]
    public string QuestionName { get; set; }
    public bool IsMultipleChoice { get; set; }
    public bool IsSelectOneMoreThan { get; set; }
    public List<MrSurveyQption> Options { get; set; }

}
public class MrSurveyQption
{
    public Guid Id { get; set; }
    public Guid QuestionId { get; set; }
    [Required]
    [StringLength(140)]
    public string OptionName { get; set; }
}

我尝试使用嵌套对象生成创建视图数天。但我没有这样做。 有没有人建议如何使用这些对象创建视图?要么 有这样的例子吗?

感谢您的关注。

1 个答案:

答案 0 :(得分:0)

  1. 您可以创建一个新类,其中包含您要在视图上拥有的所有类。然后用它来通过视图。

    public class YourNewClass{
        public MrSurvey mrSurvey {get;set;}
        public MrSurveyQuestion mrSurveyQuestion {get;set;}
        public MrSurveyQption mrSurveyQption {get;set;} }
    
  2. 你可以这样做@MPavlak评论:使用@ Html.Action为每个对象使用部分视图来获取不同对象的部分视图。

  3. 在你的观点

        @Html.Action("mrsurvey_method")
        @Html.Action("mrsurveyquestion_method")
        @Html.Action("mrsurveyqption_method")
    

    在控制器上

        public ActionResult mrsurvey_method(){
            //do anything you want
            return PartialView("_partialview1", new MrSurvey());
        }
        public ActionResult mrsurvey_method(){
            //do anything you want
            return PartialView("_partialview2", new MrSurveyQuestion());
        }
        public ActionResult mrsurvey_method(){
            //do anything you want
            return PartialView("_partialview3", new MrSurveyQption());
        }
    

    参考:How can I use Html.Action?