有人能解释一下下面的代码吗?
本文关键字:代码 一下 能解释 | 更新日期: 2023-09-27 18:04:14
谁能解释一下下面的代码,特别是new[]
@Html.DropDownListFor(x => x.WillAttend,new[] {
new SelectListItem() { Text = "Yes, I'll be there", Value = bool.TrueString},
new SelectListItem() { Text = "No, I can't come", Value = bool.FalseString}}, "Choose an option")
new[]
是否创建了一个新的选择列表?
new[]
是不是匿名类型,它是SelectListItem[]
类型的隐式类型数组。当您使用数组初始化器添加SelectListItem
类型的项时,会推断出数组(SelectListItem
)的类型。
您正在使用DropDownListFor
的重载。因为SelectListItem[]
来源于IEnumerable<SelectListItem
,所以这是可行的。您也可以使用List
,例如:new List<SelectListItem> { new SelectListItem { ... }, new SelectListItem { ... } }
.
代码创建了一个类型为SelectList
的新数组,并向其中添加了两个新的SelectListItem
项。这就是你的新下拉列表
正确,数组中的new[],列表初始化器。在这个例子中,你创建了一个数组或列表,我不知道dropdownlistfor接受的类型它有两项类型为SelectListItem
new[]是否创建了一个新的选择列表?
new[]
创建一个新的Array对象。考虑DropDownListFor
的第二个参数
IEnumerable<SelectListItem>
,数组平滑地转换为所需的类型。 @Html.DropDownListFor()
看起来像Razor视图引擎的Razor语句。该语句将生成一个HTML选择列表。这个函数的参数(()
之间的东西)构成了列表的内容,在本例中,该列表是由语句new[]{...}
生成的,该语句创建了一个新的数组,填充了{}
中的项目,在本例中是SelectListItem
s。
语句作为一个整体应该生成如下内容:
<select>
<option value="" selected="selected" disabled="disabled">Choose an option</option>
<option value="true">Yes, I'll be there</option>
<option value="false">No, I can't come</option>
</select>