首页 > 后端开发 > C++ > 当值在数组中时,如何在ASP.NET MVC5 @html.dropdownlistfor中选择一个值?

当值在数组中时,如何在ASP.NET MVC5 @html.dropdownlistfor中选择一个值?

Barbara Streisand
发布: 2025-01-30 00:37:08
原创
321 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板