0
我正在研究ASP.NET MVC應用程序。在這個應用程序中,我正在創建一個自定義對象頂部的複選框列表。自定義對象是這樣的:ASP.NET MVC - CheckBox列表ID,名稱和值
public class ListItem<TId, TLabel, TIsChecked>
{
private TId id;
private TLabel label;
private TIsChecked isChecked;
public ListItem(TId id, TLabel label, TIsChecked isChecked)
{
this.id = id;
this.label = label;
this.isChecked = isChecked;
}
public TId Id
{
get { return id; }
}
public TLabel Label
{
get { return label; }
}
public TIsChecked IsChecked
{
get { return isChecked; }
}
}
我有一個模型,看起來像這樣:
public class MyModel
{
public IEnumerable<ListItem<Guid, string, bool>> Options { get; set; }
}
然後我有一個控制器,一個名爲檔案的動作,看起來像這樣:
[HttpGet]
public ActionResult Profile()
{
var model = new MyModel();
return View(model);
}
[HttpPost]
public ActionResult Profile(MyModel model)
{
return View(model);
}
我渲染我的複選框選項在我的Razor視圖這樣的:
@foreach (var option in Model.Options)
{
<div class="form-group">
<div class="checkbox">
<label>
<input name="Options" value="@option.Id" type="checkbox" @((option.IsChecked == true) ? "checked" : string.Empty)> @option.Label
</label>
</div>
</div>
}
選項渲染正常。但是,當我保存表單時,看起來只有第一個選中的複選框ID被返回。我不知道如何:a)正確地將我的HTML呈現給複選框列表,以及b)將值正確發送回服務器。我在博客文章中看到過其他例子,但是,我的觀點將會有更多的HTML。出於這個原因,我試圖找出「如何」複選框值在客戶端呈現並回發到ASP.NET MVC中的服務器。