【发布时间】:2019-11-12 10:59:14
【问题描述】:
在我的 cshtml 视图中,我有这个预制(脚手架)代码,我对其进行了一些更改,以便能够将枚举列表而不是文本框放在那里:
<div class="form-group">
<label asp-for="Color" class="control-label"></label>
<select asp-for="Color" asp-items="Model.Colors" class="form-control"></select>
<span asp-validation-for="Color" class="text-danger"></span>
</div>
Model.Colors 发生错误。
在我的模型中,我尝试这样做:Colors.Add(new List<SelectListItem>());,正如Cannot implicitly convert type 'System.Web.Mvc.SelectList' to 'System.Collections.Generic.ICollection<System.Web.Mvc.SelectList>' 中所说的那样,但我会得到一个不同的错误; 无法将“System.Collections.Generic.List”隐式转换为“System.Web.Mvc.SelectListItem”。
即使Colors 是List<SelectListItem>。
但在此之前,我在 ViewModel 中有这个:
public EnumsDTO.Color Color { get; set; }
public List<SelectListItem> Colors { get; set; }
public void AddColorViewModel()
{
Colors = new List<SelectListItem>();
foreach (Color c in (Color[])Enum.GetValues(typeof(Color)))
{
Colors.Add(new SelectListItem
{
Value = ((int)c).ToString(),
Text = c.ToString()
});
}
}
我正在尝试学习本教程:https://www.youtube.com/watch?v=MPJ9PPCWxoI
【问题讨论】:
-
请提供一个可复现的例子,这段代码不是很清楚,因此很难看出到底是什么问题。
-
文件顶部的
using明显错误 -
@KieranDevlin 我一直在关注本教程,但是显示所有代码有点过多,因为它们与此无关。但是,当教程中的人尝试使用
asp-items = Model.etc将 de 方法获取到 cshtml 文件时,它基本上会出错 -
@Selvin 我应该拥有什么
using?
标签: c# model-view-controller enums asp.net-core-mvc selectlistitem