MVC Razor CheckBoxFor()不显示属性内容/值

时间:2016-05-12 16:08:24

标签: c# asp.net-mvc asp.net-mvc-4 razor

非常简单..所以我想。这是NopCommerce中的插件页面,但我不认为这是在这里发挥作用。

我的模特:

public class CheckBoxModel
{
    public string Name { get; set; }
    public bool Checked { get; set; }
}


public partial class ContactUsModel : BaseNopModel
{
   [AllowHtml]
   [DisplayName("Case Type")]
   public List<CheckBoxModel> CaseType { get; set; }
}

我的控制器可快速检查表单是否正确显示:

var model = new ContactUsModel
{
   CaseType = new List<CheckBoxModel>()
   {
      new CheckBoxModel() { Name="Civil Tax", Checked=false },
      new CheckBoxModel() { Name="Criminal Tax", Checked=false },
      new CheckBoxModel() { Name="Other Tax", Checked=false }
   }
}

我的剃刀:

<div class="inputs">
   @Html.LabelFor(model => model.CaseType)
   @for(int i = 0; i < Model.CaseType.Count; i++)
   {
      @Html.LabelFor(lbl => lbl.CaseType[i].Name)
      @Html.CheckBoxFor(chk => chk.CaseType[i].Checked)
   }
</div>

HTML:

Case Type:    Name []      Name[]     Name[]

在控制器中分配实际名称以显示??

,我缺少什么

1 个答案:

答案 0 :(得分:1)

试试这个:

<div class="inputs">
   @Html.LabelFor(model => model.CaseType)
   @for(int i = 0; i < Model.CaseType.Count; i++)
   {
      @Html.DisplayFor(lbl => lbl.CaseType[i].Name)
      @Html.CheckBoxFor(chk => chk.CaseType[i].Checked)
   }
</div>

LabelFor将打印属性的名称,这不是您要查找的内容。 DisplayFor将打印该值。