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

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

Barbara Streisand
发布: 2025-01-30 00:35:10
原创
662 人浏览过

在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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板