我有一个带有OtherCountries的模型作为列表。在每个国家之前,我需要放一个复选框:
@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>
}
使用提交按钮我可以将模型发送给控制器,但我的问题是我不知道这个复选框属于哪个国家/地区?每个国家/地区前面都有一个复选框,但如果我想要从列表中删除国家/地区,我必须根据复选框执行此操作。
答案 0 :(得分:0)
好的,您需要为此案例创建一个视图模型,在该视图模型中,您可以添加具有以下国家/地区名称的字段:
public [datatype] USA {get; set;}
视图模型的名称可以是:public class CountriesViewModel
现在,当您填充View时,可以将这些名称添加到复选框中,这样当您将信息发送回控制器时,您可以在视图中执行此操作:
@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)
{
}
答案 1 :(得分:0)
您需要创建一个模型来包装国家/地区名称和选择的布尔值,并将此字符串列表替换为此新模型的列表。从那时起,只需将复选框的值与每个国家/地区的选定属性以及带有标签的名称相关联,一旦您点击提交,您将获得所需的信息。