2016-07-01 9 views
0

最近MVC 5で入れ子になったオブジェクト(オブジェクトのリスト)を使ってビューを作成する方法を研究していますか?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; } 
} 

は、私は数日間、私のネストされたオブジェクトを持つビューを作成生成しよう。しかし、私はそれをしなかった。 誰も、これらのオブジェクトでビューを作成する方法を提案していますか?または そのような例がありますか?

ありがとうございます。

+0

通常、ネストされたオブジェクトを使用すると、レンダリングされているパーシャルビューになります。 – MPavlak

+0

あなたはビューモデルを作ってそれをあなたのビューに渡すことができます –

+1

しかし、それはあなたが何をしようとしているのかがはっきりしていません。 –

答えて

0
  1. ビューに含めるすべてのクラスを含む新しいクラスを作成できます。それを使用してビューを通過させます。

    public class YourNewClass{ 
        public MrSurvey mrSurvey {get;set;} 
        public MrSurveyQuestion mrSurveyQuestion {get;set;} 
        public MrSurveyQption mrSurveyQption {get;set;} } 
    
  2. あなたは@MPavlakのコメントのように行うことができます異なるオブジェクトを持つ部分のビューを取得するために、@ Html.Actionを使用して、オブジェクトのそれぞれの部分図を使用します。コントローラ

    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()); 
        } 
    

    参考に

  3. ビューで

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

How can I use Html.Action?

関連する問題