【发布时间】:2019-04-30 22:35:41
【问题描述】:
我有这个模型:
public class CampoTipoDocumentoViewModel
{
public int TipoDocumentoId { get; set; }
public string[] CamposId { get; set; }
private List<MiddleTier.Models.ICampo> _todosCampos;
public IEnumerable<SelectListItem> TodosCampos
{
get
{
foreach (var campo in _todosCampos)
yield return new SelectListItem { Text = campo.Nombre, Value = campo.Id.ToString() };
}
}
public void SetFields(List<MiddleTier.Models.ICampo> campos)
{
_todosCampos = campos;
}
}
在控制器中,CamposId 属性分配有必须在视图中选择的元素。
控制器还调用 SetFields 方法将 _todosCampos 填充到系统中的整个记录列表中。
这个想法是创建一个带有 SELECT 的视图,该 SELECT 最初选择了一些记录。
这是我的看法:
@Html.DropDownListFor(m => m.CamposId, Model.TodosCampos, new { @class = "form-control", multiple = "multiple", width = "100%" })
事实是 HTML SELECT 元素是用列表创建的,但没有选择任何选项。
例如,如果 _todosCampos 包含:
Text = "One", Value = "1"
Text = "Two", Value = "2"
Text = "Three", Value = "3"
Text = "Four", Value = "4"
并且 CamposId 包含:
Array of "2", "4"
我需要视图来创建一个包含这 4 个选项的 SELECT,以及最初选择的选项 2 和 4。
我怎样才能做到这一点?
谢谢 詹姆
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-5 razor-2 dropdownlistfor