Asp.net mvc 获取foreach循环中的复选框值
我有一个其他国家的模型作为列表。在每个国家/地区之前,我需要设置一个复选框:Asp.net mvc 获取foreach循环中的复选框值,asp.net-mvc,checkbox,Asp.net Mvc,Checkbox,我有一个其他国家的模型作为列表。在每个国家/地区之前,我需要设置一个复选框: @foreach (string country in Model.OtherCountries) { <div class="form-group"> <div class="col-md-2 control-label"> @Translations.Text
@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>
}
通过“提交”按钮,我可以将模型发送给控制器,但我的问题是,我不知道哪个复选框属于哪个国家?每个国家/地区前面都有一个复选框,但如果我想从列表中删除一个国家/地区,我必须根据该复选框进行删除。好的,您需要为这种情况创建一个视图模型,在该视图模型中,您可以添加具有国家/地区名称的字段,如:
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>
}
您需要创建一个模型来包装国家名称和选定的布尔值,并将字符串OtherCountries列表替换为此新模型的列表。从那时起,只需将复选框的值与每个国家/地区的选定属性以及带有标签的名称相链接,这样,在控制器中,一旦单击“提交”,您就可以获得所需的信息。为视图创建一个模型,其中包含所需的信息,这将使您的操作变得简单。
public ActionResult CountriesController(CountriesViewModel contries)
{
}