C# ASP.Net MVC SelectLIst和List出现问题<;选择列表项>;

C# ASP.Net MVC SelectLIst和List出现问题<;选择列表项>;,c#,asp.net-mvc,selectlist,C#,Asp.net Mvc,Selectlist,我正在扩展一个枚举,在给出以下代码的情况下,selectListItems是一个selectListItems的通用列表,其中包含枚举的所有正确值 第一个foreach循环工作正常。但是,当我创建实际的SelectList并传入selectListItems时,所有值都会丢失。如何保持这些值不变 foreach (SelectListItem item in selectListItems) { string tex = item.Text; string val = item.

我正在扩展一个枚举,在给出以下代码的情况下,
selectListItems
是一个selectListItems的通用列表,其中包含枚举的所有正确值

第一个foreach循环工作正常。但是,当我创建实际的SelectList并传入
selectListItems
时,所有值都会丢失。如何保持这些值不变

foreach (SelectListItem item in selectListItems)
{
    string tex = item.Text;
    string val = item.Value;
    string sel = item.Selected.ToString();
}

SelectList selectList = new SelectList(selectListItems);

foreach (SelectListItem slid in selectList)
{
    string tex = slid.Text;
    string val = slid.Value;
    string sel = slid.Selected.ToString();
}

您需要更改构建它的行,以告诉它在哪里查找值。在您的情况下,它将是:

SelectList selectList = new SelectList(selectListItems, "Value", "Text");
但这将不会结转所选项目。在这种情况下,您需要确定哪个项目应该是所选的项目,并通过forth参数传递其值

以下是一个例子:

List<SelectListItem> items = new List<SelectListItem>();
items.Add(new SelectListItem() { Text = "Test1", Value = "1", Selected = false });
items.Add(new SelectListItem() { Text = "Test8", Value = "8", Selected = true });
items.Add(new SelectListItem() { Text = "Test3", Value = "3", Selected = false });
items.Add(new SelectListItem() { Text = "Test5", Value = "5", Selected = false });

SelectList sl = new SelectList(items, "Value", "Text", "8");
List items=newlist();
添加(新SelectListItem(){Text=“Test1”,Value=“1”,Selected=false});
添加(新的SelectListItem(){Text=“Test8”,Value=“8”,Selected=true});
添加(新SelectListItem(){Text=“Test3”,Value=“3”,Selected=false});
添加(新的SelectListItem(){Text=“Test5”,Value=“5”,Selected=false});
SelectList sl=新的SelectList(项目,“值”、“文本”、“8”);
您可能还想检查一下,这可能会有所帮助


编辑:刚刚看到您的评论,但它不起作用,因为它不够聪明,无法在默认情况下查找
文本
字段。您可以向它传递一种类型的对象,通过定义要映射到
Text
Value
属性的属性,它使您能够绑定到它。

SelectList SelectList=new SelectList(selectListItems,“Text”,“Value”);这很有效。我不知道为什么没有它它就不能工作。任何人