簡體   English   中英

有人可以解釋以下代碼嗎

[英]Can someone please explain the following code

有人可以解釋下面的以下代碼,尤其是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派生的,因此可以正常工作。 例如,您可能還使用過一個Listnew List<SelectListItem> { new SelectListItem { ... }, new SelectListItem { ... } }

該代碼創建一個類型為SelectList的新數組,並向其中添加兩個新的SelectListItem項。 那是您的新下拉列表。

new []是否創建新的選擇列表?

new[]創建一個新的Array對象。 考慮到DropDownListFor第二個參數是IEnumerable<SelectListItem> ,數組可以平滑地轉換為所需的類型。

沒錯,數組初始化列表中的new []。 因此,在這種情況下,您創建一個數組或一個列表,但我不知道dropdownlistfor可以接受的類型,並且它具有2個SelectListItem類型的項目。

@Html.DropDownListFor()看起來像Razor視圖引擎的Razor語句。 該語句將生成一個HTML選擇列表。 該函數的參數( ()之間的內容)構成了列表的內容,在這種情況下,該列表是由語句new[]{...}生成的,該語句創建了一個新數組,其中填充了{}的項目在這種情況下,為SelectListItem

整個語句應生成如下內容:

<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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM