首页 >后端开发 >C++ >当值在数组中时,如何在mvc5 razor`html.dropdownlistfor`中设置所选值?

当值在数组中时,如何在mvc5 razor`html.dropdownlistfor`中设置所选值?

Barbara Streisand
Barbara Streisand原创
2025-01-30 00:35:10663浏览

在ASP.NET MVC 5应用程序中,如何使用数组值设置MVC5 Razor Html.DropDownListFor 中的选中值?

How to Set Selected Values in MVC5 Razor `Html.DropDownListFor` When Values are in an Array?

问题描述

在ASP.NET MVC 5应用程序中,目标是使用Configurations数组中的值(特别是AggregationLevelConfiguration.CodeTypeAggregationLevelConfiguration.HelperCodeType字段)来设置CodeTypeItemsHelperCodeTypeItems属性的选中值。然而,使用new SelectList(codeTypes, "Id", "Name")new SelectList(helperCodeTypes, "Id", "Name")无法设置选中值。

解决方案

方案一:使用EditorTemplate

为名为AggregationLevelConfigurationAggregationLevelConfiguration创建一个自定义EditorTemplate,例如AggregationLevelConfiguration.cshtml

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

然后在主视图中,将SelectList作为附加视图数据传递给EditorTemplate:

<code class="language-csharp">@using (Html.BeginForm())
{
  ...
  @Html.EditorFor(m => m.Configurations , new { CodeTypeItems = Model.CodeTypeItems })
  ...
}</code>

方案二:在每次迭代中生成SelectList

CodeTypeItems属性更改为IEnumerable<genericidnametype>,并将codeTypes变量设为公共属性。然后在主视图中使用以下代码:

<code class="language-csharp">@Html.DropDownListFor(m => m.Configurations[0].HelperCodeType, new SelectList(Model.CodeTypeItems, "Id", "Name", Model.Configurations[0].HelperCodeType))</code>

请注意,使用new { id = "Configurations[0].HelperCodeType" }是不必要的,因为DropDownListFor()方法会自动生成id属性。

This revised response offers a more concise and clearer explanation of the problem and solutions, while maintaining the original image. The code blocks are also formatted for better readability.

以上是当值在数组中时,如何在mvc5 razor`html.dropdownlistfor`中设置所选值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn