我有一个asp.net核心项目。在我的模型中,我有一个实体,其名称为Brand。您可以在下面看到。
public class Brand
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
public virtual IList<CategoryBrand> CategoryBrands { get; set; }
}
}
这是我对此有疑问的部分。
<select asp-for="@Model.CategoryBrands[0].CatId">
@foreach (var item in ViewBag.Categories)
{
<option value="@item.Id">@item.Name</option>
}
</select>
当我要编辑一个没有任何类别品牌的实体时,出现此错误
Index was out of range. Must be non-negative and less than the size of the collection
我理解错误原因,因为brand.categorybrands集合中没有任何内容,但是请考虑我需要此选择,因为在EditBrand中可能有人要在编辑页面中添加类别。 >
答案 0 :(得分:0)
问题似乎是your ViewBag.Categories
有问题。没有类别时,请检查ViewBag的值。一个愚蠢的解决方法是添加验证,但我的建议是改用SelectList
。
SelectList
会给您带来较小的灵活性,但在剃刀视图中具有更高的鲁棒性。