use@html.dropdownlistfor asp.net mvc 5のasp.net mvc 5の配列の中程度の値を設定する
ASP.NET MVC 5アプリケーションでは、補助方法を使用して、データセットからドロップダウンリストを生成できます。ただし、複雑なデータ構造(配列など)を処理する場合、配列内の属性に従って選択値を設定すると、課題が発生する場合があります。
次のViewModelを検討してください:
@Html.DropDownListFor()
ここでの課題は、アレイの
オブジェクトの<code class="language-csharp">@model MyProject.Web.API.Models.AggregationLevelConfViewModel
@Html.DropDownListFor(m => m.Configurations[0].HelperCodeType, (SelectList)Model.HelperCodeTypeItems, new { id = "Configurations[0].HelperCodeType" })</code>
ログイン後にコピー
オブジェクトの属性に従って、ドロップダウンリストの選択値に基づいている方法。 コンストラクターに選択値を設定する従来の方法は無効です。これは、Configurations
コレクションでは利用できない選択値です。 AggregationLevelConfiguration
HelperCodeType
解決策:SelectList
HelperCodeTypeItems
メソッド1:エディターテンプレートを使用
:
でエディターテンプレートを作成します
その後、メインビューでは、を使用して
をエディターテンプレートに渡します。
/Views/Shared/EditorTemplates/AggregationLevelConfiguration.cshtml
メソッド2:新しいselectlist
<code class="language-csharp">@model yourAssembly.AggregationLevelConfiguration
@Html.DropDownListFor(m => m.HelperCodeType, (SelectList)ViewData["CodeTypeItems"])</code>
ログイン後にコピー
を生成します
の代わりにadditionalViewData
を設定します。次に、メインビューで:SelectList
<code class="language-csharp">@using (Html.BeginForm())
{
...
@Html.EditorFor(m => m.Configurations , new { CodeTypeItems = Model.CodeTypeItems })
...
}</code>
ログイン後にコピー
属性は、手動仕様なしでによって自動的に生成されることに注意してください。
以上が@html.drowdownListの選択された値を配列内にあるときに設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。