MVC控制器获得“复选框列表”的值 [英] MVC Controllers get value of 'Checkboxlist'

查看:114
本文介绍了MVC控制器获得“复选框列表”的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在这里可能是个白痴,但在获取是否已选中/未选中复选框的值方面遇到问题。这是到目前为止我得到的:

I'm probably a idiot here but I'm having problems getting the value of whether or not a checkbox is checked/selected or not. Here's what I've got so far:

在我的模型中:

public IEnumerable<SelectListItem> Insurers
{
  get
    { 
      var list = new List<SelectListItem>();
      string zInsurersList = "Age UK,Be Wiser,Call Connection,Churchill,Sainsbury's,Direct Line,Hastings Direct,LV=,Nationwide,RIAS,Swinton";
      string[] zInsurers = zInsurersList.Split(',');
      foreach (string aInsurer in zInsurers)
      {
        list.Add(new SelectListItem() { Text = aInsurer, Value = aInsurer, Selected=false});
      }
      return list;
    }
  }
}

我的观点:

@foreach (var insurer in @Model.Insurers)
{
  var zInsurer = insurer.Text;
  var zValue = insurer.Value;
  <tr>
    <td style="width: 120px; height: 35px;"><span id="@zInsurer">@zInsurer</span></td>
    <td style="width: 40px; height: 35px;"><input id="@zInsurer" type="checkbox" name="@zInsurer"></td>
  </tr>
}

所以在我的控制器中,我试图循环列表并获取值用户是否选择了以下选项:

So in my controller I'm trying to loop the list and get the value of whether or not the user has selected the option:

foreach (var item in model.Insurers)
{
  //if (item.GetType() == typeof(CheckBox))
  //string controlVal = ((SelectListItem)item).Selected.ToString();
  zInsurers = zInsurers + item.Text + " " + ((SelectListItem)item).Selected.ToString() + "<br/>";
}

但该值始终返回false。

But the value always returns false.

有人可以花点时间强调我的愚蠢吗?

Could someone spare a few mins to highlight my stupidity please?

谢谢

Craig

推荐答案

有很多方法可以做到这一点。我通常在模型中添加 String Array 来收集选定的值。

There are a lot of ways to do it. I normally add String Array in model to collect selected values.

public string[] SelectedInsurers { get; set; }

<input type="checkbox" name="SelectedInsurers" value="@insurer.Value" />

这是示例代码-

public class MyModel
{
    public string[] SelectedInsurers { get; set; }

    public IEnumerable<SelectListItem> Insurers
    {
        get
        {
            var list = new List<SelectListItem>();
            string zInsurersList = "Age UK,Be Wiser,Call Connection,Churchill,Sainsbury's,Direct Line,Hastings Direct,LV=,Nationwide,RIAS,Swinton";
            string[] zInsurers = zInsurersList.Split(',');
            foreach (string aInsurer in zInsurers)
            {
                list.Add(new SelectListItem { Text = aInsurer, Value = aInsurer, Selected = false });
            }

            return list;
        }
    }
}



操作方法



Action Methods

public ActionResult Index()
{
    return View(new MyModel());
}

[HttpPost]
public ActionResult Index(MyModel model)
{
    return View();
}



查看



View

@using (Html.BeginForm())
{
    foreach (var insurer in @Model.Insurers)
    {
        <input type="checkbox" name="SelectedInsurers" value="@insurer.Value" /> @insurer.Text<br/>
    }
    <input type="submit" value="Post Back" />
}



结果



Result

这篇关于MVC控制器获得“复选框列表”的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆