我有以下类作为我的viewmodel。由于要求,我必须使用IGrouping而不是普通的IList或IEnumerable。我必须根据类型对ExtraCostOption进行分组。
我附上了我的观点图片,可以解释这个要求。
我的问题是FirstCostOption根本没有填充,但填充了所有其他值。
谁能指点我的方向?
public class ExtraCostOption
{
public string Name { get; set; }
public string Description { get; set; }
public bool IsSelected { get; set; }
public OptionCategory Category { get; set; }
public string SourceId {get;set;}
}
public class Product
{
public string Id {get;set;}
public string Cost {get;set;}
public List<IGrouping<string, ExtraCostOption>> FirstCostOption { get; set; }
}
我的剃刀代码是:
<div class="sm card content">
@if (Model.FirstCostOption .Any())
{
foreach (var optGroup in Model.FirstCostOption)
{
<h5>@optGroup.Key</h5>
for (int i = 0; i < optGroup.ToList().Count; i++)
{
<div class="card">
@Html.HiddenFor(m => optGroup.ToList()[i].SourceId)
<label class="control checkbox">
@Html.CheckBoxFor(m => optGroup.ToList()[i].IsSelected)
<span class="control-indicator"></span>
<span>
@optGroup.ToList()[i].Name
</span>
</label>
</div>
}
}
}
</div>
我的控制器代码如下所示:
[ValidateAntiForgeryToken]
[System.Web.Mvc.HttpPost]
public async Task<ActionResult> Process([FromBody]Product viewModel)