在MVC 4视图中访问导航类属性

时间:2014-10-02 07:38:12

标签: c# asp.net-mvc asp.net-mvc-4 model-binding

我的班级

public partial class Team
    {
        public Team()
        {
            this.Trials = new HashSet<Trials>();
            this.Users = new HashSet<Users>();
        }

        public int TeamId { get; set; }
        public string TeamName { get; set; }
        public string TeamDescription { get; set; }
        public virtual ICollection<Trials> Trials { get; set; }
    }

并且在视图中我试图访问类似

的试验类的参数
@model Project.Classes.Team

 <td>
         @for (int i = 0; i < Model.Trials.Count; i++ )
         {                
                @Html.DisplayFor(x => Model.Trials.ElementAt(i).Name)
                @Html.HiddenFor(x => Model.Trials.ElementAt(i).Name)
                @Html.HiddenFor(x => Model.Trials.ElementAt(i).TrialID)
                @Html.CheckBoxFor(x => Model.Trials.ElementAt(i).isChk)  
             <br />               
         } 
</td>

当显示视图时,它显示模型中的Trials对象并显示在表单上但是当表单被发布然后在控制器中我没有得到任何值的试验它显示0试验...我想我正在做一些事情绑定循环错误...

任何帮助表示赞赏......

1 个答案:

答案 0 :(得分:0)

通过改变Team calss来实现它。而是使用

 public virtual ICollection<Trials> Trials { get; set; }

我将其更改为IList

public virtual IList<Trials> Trials { get; set; }

并评论了

 //this.Trials = new HashSet<Trials>();

并在视图中

 <td>
         @for(int i=0; i<Model.Trials.Count; i++)
         {

                @Html.DisplayFor(x =>  x.Trials[i].Name)
                @Html.HiddenFor(x => x.Trials[i].Name)
                @Html.HiddenFor(x => x.Trials[i].TrialID)
                @Html.CheckBoxFor(x => x.Trials[i].isChk)  
             <br />

         }      

                </td>

现在,我正在为团队内的团队和试验获得真正的模型价值........