@html.HiddenFor用viewModel绑定html表

时间:2017-04-26 18:59:55

标签: html asp.net-mvc viewmodel model-binding

我在viewModel中有一个列表,并尝试将该列表与html表绑定。首先我尝试foreach loop,它生成表但是在表单提交时它总是向控制器发送空列表。

然后在搜索时,我知道我已经使用for loop进行绑定..现在我尝试了这样的循环

 @for(int i =0; i< Model.lstTrainingCourses.Count; i++)
       {
           <tr>
               <td hidden>@Html.HiddenFor(tc => Model.lstTrainingCourses[i].UserTrainingCoursesDetailId)</td>
               <td hidden>@Html.DisplayFor(tc => Model.lstTrainingCourses[i].TrainingCourses)</td>
           </tr>
       }

但它只发送第一列值,并在表单提交的列表中将第二列作为null传递。

我也试过了@Html.TextBoxFor,但它在表格中提供了一个我不需要的文本框。

然后我改变了这样的第二列;

         <td hidden>@Html.HiddenFor(tc => Model.lstTrainingCourses[i].TrainingCourses)</td>
         <td>@Html.DisplayFor(tc => Model.lstTrainingCourses[i].TrainingCourses)</td>

它完全符合我的要求。但是我要再次重复相同的列进行绑定。所以我需要建议这种方法是好还是不好?任何形式的帮助将不胜感激。

更新:使用@ Html.TextBoxFor进行只读

我甚至试过这个(仅在第一栏)

 <td>@Html.TextBoxFor(tc => Model.lstTrainingCourses[i].TrainingCourses, new { @readonly = true })</td>

,结果就是这个

textboxFor

它使textbox readonly但是在列中显示文本框,甚至没有正确绑定它的值。我希望列像第二个(开始日期)。

0 个答案:

没有答案