首頁 > 後端開發 > C++ > 當值在數組中時,如何在ASP.NET MVC5 @html.dropdownlistfor中選擇一個值?

當值在數組中時,如何在ASP.NET MVC5 @html.dropdownlistfor中選擇一個值?

Barbara Streisand
發布: 2025-01-30 00:37:08
原創
324 人瀏覽過

How to Select a Value in an ASP.NET MVC5 @Html.DropDownListFor When the Value is in an Array?

在ASP.NET MVC5中,使用@Html.DropDownListFor處理數組值作為下拉列表選中項

在ASP.NET MVC 5中,@Html.DropDownListFor() 輔助方法用於為模型中的屬性渲染下拉列表。然而,有時您可能需要根據模型中數組或集合中的值來設置下拉列表的選中值。

考慮以下示例:

<code class="language-csharp">@Html.DropDownListFor(m => m.Configurations[0].HelperCodeType, (SelectList)Model.HelperCodeTypeItems, new { id = "Configurations[0].HelperCodeType" })</code>
登入後複製

在這個例子中,Configurations 屬性是一個 AggregationLevelConfiguration 對象的數組。我們希望根據 Configurations 數組中第一個元素的 HelperCodeType 屬性設置下拉列表的選中值。

但是,如果我們嘗試使用以下代碼設置下拉列表的選中值:

<code class="language-csharp">new SelectList(Model.HelperCodeTypeItems, "Id", "Name", Model.Configurations[0].HelperCodeType)</code>
登入後複製

我們會遇到錯誤。這是因為 SelectList 構造函數期望第四個參數是字符串,但 Model.Configurations[0].HelperCodeType 屬性是字節類型。

為了解決這個問題,我們可以使用以下兩種方法之一:

方法一:使用EditorTemplate

AggregationLevelConfiguration 類型創建一個自定義 EditorTemplate。在 EditorTemplate 中,我們可以使用 @Html.DropDownListFor() 輔助方法為 HelperCodeType 屬性渲染下拉列表。我們還可以根據 Model.HelperCodeType 屬性設置下拉列表的選中值。

例如,以下 EditorTemplate 將下拉列表的選中值設置為 Model 對象的 HelperCodeType 屬性:

<code class="language-csharp">@model yourAssembly.AggregationLevelConfiguration
@Html.DropDownListFor(m => m.HelperCodeType, (SelectList)ViewData["CodeTypeItems"])
.... // AggregationLevelConfiguration的其他属性</code>
登入後複製

方法二:在每次迭代中生成新的SelectList

在這種方法中,我們將為 Configurations 數組中的每個元素生成一個新的 SelectList 對象。然後,我們可以根據當前元素的 HelperCodeType 屬性設置下拉列表的選中值。

例如,以下代碼將為 Configurations 數組中的每個元素生成一個新的 SelectList 對象:

<code class="language-csharp">foreach (var configuration in Model.Configurations)
{
    @Html.DropDownListFor(m => configuration.HelperCodeType, new SelectList(Model.HelperCodeTypeItems, "Id", "Name", configuration.HelperCodeType))
}</code>
登入後複製

這兩種方法都可以讓我們根據模型中數組或集合中的值來設置下拉列表的選中值。

以上是當值在數組中時,如何在ASP.NET MVC5 @html.dropdownlistfor中選擇一個值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板