Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在选择列表的DataTextField中设置默认值_C#_Asp.net Mvc_Razor_Selectlist - Fatal编程技术网

C# 在选择列表的DataTextField中设置默认值

C# 在选择列表的DataTextField中设置默认值,c#,asp.net-mvc,razor,selectlist,C#,Asp.net Mvc,Razor,Selectlist,我正在尝试更改下拉列表的SelectList构造函数中的默认选择,SelectList构造函数允许使用第三个参数,该参数是表示SelectList的DataTextField值的字符串,但当我尝试以下任一操作时: new SelectList(new[] { 1, 2, 3, 4 }, Model.XXXX.xxxx, 3) new SelectList(new[] { 1, 2, 3, 4 }, Model.XXXX.xxxx, "3") 我得到一个错误: 最佳重载方法匹配有一些无效参数 我

我正在尝试更改下拉列表的SelectList构造函数中的默认选择,SelectList构造函数允许使用第三个参数,该参数是表示SelectList的DataTextField值的字符串,但当我尝试以下任一操作时:

new SelectList(new[] { 1, 2, 3, 4 }, Model.XXXX.xxxx, 3)
new SelectList(new[] { 1, 2, 3, 4 }, Model.XXXX.xxxx, "3")
我得到一个错误:

最佳重载方法匹配有一些无效参数

我不明白什么?在我看来,上面第二行应该可以工作,因为我给了它第三个字符串参数以显示在DataTextField中

作为一个次要的子问题,语法是什么

new[] { 1, 2, 3, 4 }
什么意思?我不熟悉C,新关键字后的括号对我来说是陌生的

SelectList sl = new SelectList( new[]{
  new SelectListItem{ Text="one", Value="1"},
  new SelectListItem{ Text="two", Value="2"},
  new SelectListItem{ Text="three", Value="3"}
}, "Text", "Value", "3" );
对于你的另一个问题

新[]{1,2,3,4}

您基本上是在创建一个int数据类型数组,其元素为1、2、3和4

对于你的另一个问题

新[]{1,2,3,4}


基本上,您正在创建一个int数据类型数组,其元素为1、2、3和4,这是您用于SelectList的构造函数

public SelectList(
    IEnumerable items,
    string dataValueField,
    string dataTextField
)
当SelectList通过视图呈现时,它只是HTML,因此您应该提供匿名数组作为字符串,dataValueField和dataTextField作为字符串。 从这个角度来看

1. 2. 3. 4.
用于SelectList的构造函数

public SelectList(
    IEnumerable items,
    string dataValueField,
    string dataTextField
)
当SelectList通过视图呈现时,它只是HTML,因此您应该提供匿名数组作为字符串,dataValueField和dataTextField作为字符串。 从这个角度来看

1. 2. 3. 4.
SelectList构造函数的重载之一如下

SelectList(IEnumerable, String, String);
new SelectList(Model, "Data Value field", "Data text field");
IEnumerable->列表中的项目

字符串->数据值字段

字符串->数据文本字段

IEnumerable是新的[]{1,2,3,4},它基本上是一个整数数组,其元素为1,2,3和4

数据值字段是您的模型,文本字段是3

如果您试图从您的模型中创建一个选择列表,我建议您执行以下操作

SelectList(IEnumerable, String, String);
new SelectList(Model, "Data Value field", "Data text field");
例如: 如果您有一个学生模型Std_ID、Std_Name,并且您需要一个选择列表来显示学生名称并保存其ID的值

new SelectList(Model, "Std_ID", "Std_Name");

SelectList构造函数的重载之一如下

SelectList(IEnumerable, String, String);
new SelectList(Model, "Data Value field", "Data text field");
IEnumerable->列表中的项目

字符串->数据值字段

字符串->数据文本字段

IEnumerable是新的[]{1,2,3,4},它基本上是一个整数数组,其元素为1,2,3和4

数据值字段是您的模型,文本字段是3

如果您试图从您的模型中创建一个选择列表,我建议您执行以下操作

SelectList(IEnumerable, String, String);
new SelectList(Model, "Data Value field", "Data text field");
例如: 如果您有一个学生模型Std_ID、Std_Name,并且您需要一个选择列表来显示学生名称并保存其ID的值

new SelectList(Model, "Std_ID", "Std_Name");

可以通过绑定到模型特性来设置初始选定选项。如果您有一个属性,比如Number,并将其值设置为3,那么使用@Html.DropDownListForm=>m.Number,new SelectListnew[]{1,2,3,4}将选择第三个选项。这就是模型绑定的工作原理。您可以通过绑定到模型属性来设置初始选定选项。如果您有一个属性,比如Number,并将其值设置为3,那么使用@Html.DropDownListForm=>m.Number,new SelectListnew[]{1,2,3,4}将选择第三个选项。这就是模型绑定的工作原理。