ASP.NET视图和模型,一个小问题

时间:2016-11-10 09:24:22

标签: c# asp.net asp.net-mvc checkbox

逗人,

请你帮我理解非常简单的事情

我的班级有模特:

public class VendorAssistanceViewModel
{
    public string Name { get; set; }
    public bool Checked { get; set; }
}
public partial class CSModel : IEntity
{
    public CSModel()
    {

        VendorAssistances = new[]
        {
        new VendorAssistanceViewModel { Name = "DJ/BAND" },
        new VendorAssistanceViewModel { Name = "Officiant" },
        new VendorAssistanceViewModel { Name = "Florist" },
        new VendorAssistanceViewModel { Name = "Photographer" },
        new VendorAssistanceViewModel { Name = "Videographer" },
        new VendorAssistanceViewModel { Name = "Transportation" },
        }.ToList();
    }


    public IList VendorAssistances { get; set; }

我有看法:

@model IEnumerable<CSTS.Models.CSModel>

 //some html code...

我想知道如何使用VendorAssistances显示模型中的复选框数组? 我知道这很简单,我看了很多文档,但仍然无法理解

谢谢!

已更新

我试着遵循:

  1. 进入控制

             public override ActionResult Index(int pageNumber, int pageSize, string   nothing)
      {
    
      List<VendorAssistanceViewModel> VendorAssistances = new[]
    {
    new VendorAssistanceViewModel { Name = "DJ/BAND" },
    new VendorAssistanceViewModel { Name = "Officiant" },
    new VendorAssistanceViewModel { Name = "Florist" },
    new VendorAssistanceViewModel { Name = "Photographer" },
    new VendorAssistanceViewModel { Name = "Videographer" },
    new VendorAssistanceViewModel { Name = "Transportation" },
    }.ToList();
    
  2. 我已经添加Watch to VendorAssistance并插入断点,并且所有时间tihs对象都是NULL

    为什么?

1 个答案:

答案 0 :(得分:1)

您只需要遍历Model.VendorAssistances并为每个VendorAssistanceViewModel发出html代码。您可以使用以下代码:

@foreach(var model in Model)
{
    for(int i=0; i < model .VendorAssistances.Count; i++)
    {
        @Html.CheckBoxFor(x => model.VendorAssistances[i].Name)
    }
}

另请阅读this问题,该问题可以帮助您解决如何将生成的数组发布到操作中的问题。