【问题标题】:Get CheckBox value in a foreach loop在 foreach 循环中获取 CheckBox 值
【发布时间】:2020-08-30 07:03:18
【问题描述】:

我有一个其他国家/地区的模型List<string>。在每个国家/地区之前,我需要放置一个复选框:

@foreach (string country in Model.OtherCountries)
    {
        <div class="form-group">
            <div class="col-md-2 control-label">
                @Translations.Text
            </div>
              <div class="col-md-10">
                <div class="col-md-1">
                    <label>
                        <input type="checkbox" name="checkboxCountry" id="checkboxCountry" value="true"/>
                    </label>
                </div>
                <div class="col-md-11">
              <textarea name="@(Html.NameFor(m => m.OtherCountries))" class="form-control textarea-resize" rows="5">@country</textarea>
              </div>
            </div>
        </div>
    }

使用提交按钮,我可以将模型发送到控制器,但我的问题是我不知道哪个复选框属于哪个国家?每个国家/地区前面都有一个复选框,但如果我想从列表中删除一个国家/地区,我必须根据复选框来执行此操作。

【问题讨论】:

  • 使用您需要的信息为您的视图创建一个模型,这将使​​您轻松完成。

标签: asp.net-mvc checkbox


【解决方案1】:

好的,您需要为此案例创建一个视图模型,在该视图模型中您可以添加具有国家名称的字段,例如:

public [datatype] USA {get; set;}

视图模型的名称可以是:public class CountriesViewModel

现在,当您填充视图时,您可以将这些名称添加到复选框中,这样当您将信息发送回控制器时,您就可以在视图中执行此操作:

@foreach (string country in Model.OtherCountries)
{
    <div class="form-group">
        <div class="col-md-2 control-label">
            @Translations.Text
        </div>
          <div class="col-md-10">
            <div class="col-md-1">
                <label>
                    <input type="checkbox" name="@country" />
                </label>
            </div>
            <div class="col-md-11">
          <textarea name="@(Html.NameFor(m => m.OtherCountries))" class="form-control textarea-resize" rows="5">@country</textarea>
          </div>
        </div>
    </div>
}

然后你可以在你的控制器中期待这个:

public ActionResult CountriesController(CountriesViewModel contries)
{
}

【讨论】:

    【解决方案2】:

    您需要创建一个模型来包装国家名称和选定的布尔值,并将字符串 OtherCountries 列表替换为此新模型的列表。从那时起,只需将复选框的值与每个国家/地区的选定属性和名称与标签相关联,因此在控制器中单击提交后,您将获得所需的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-23
      • 2020-06-28
      • 1970-01-01
      • 2017-05-18
      • 1970-01-01
      • 1970-01-01
      • 2016-04-29
      相关资源
      最近更新 更多