gpt4 book ai didi

ASP.Net MVC 动态 DropDownList - 如何创建一个

转载 作者:行者123 更新时间:2023-12-02 08:35:43 25 4
gpt4 key购买 nike

我正在使用编辑器模板 - 因为我需要遍历我的模型,并显示/编辑我模型中的许多 RatesList 对象。

这确保了 ID 和名称是正确的 - 因此它们在 Post 回 Controller 时绑定(bind)回我的模型。

但是下拉列表需要是动态的 - 所以必须显示从 0 到我的 Model.TypeCount 是什么。

我有没有使用 @Html.DropDownListFor 助手 - 以便正确命名下拉列表?在我下面的代码中,它只是一个选择语句——因为我不知道如何使下拉列表动态化——但是没有使用命名约定,并且下拉列表没有绑定(bind)回我的模型。我的编辑 View 是:

@model ebs.Models.RatesList
@{ Layout = null; }
<tr>
<td>
@Html.TextBoxFor(modelItem => modelItem.TypeID)
</td>
<td>
@{ var num = Model.TypeCount; }

<select id="NumSelected" name="NumSelected">
@for (var i = 0; i <= num; i++)
{
<option value="@i">@i</option>
}
</select>
</td>
</tr>

感谢您的帮助,

标记

最佳答案

@model ebs.Models.RatesList
@{ Layout = null; }
<tr>
<td>
@Html.TextBoxFor(modelItem => modelItem.TypeID)
</td>
<td>
@Html.DropDownList(
"NumSelected",
Enumerable
.Range(0, Model.TypeCount)
.Select(x => new SelectListItem
{
Value = x.ToString(),
Text = x.ToString()
})
)
</td>
</tr>

但显然将其定义为 View 模型的一部分会好得多:

public class RatesList
{
public int NumSelected { get; set; }
public IEnumerable<SelectListItem> Values
{
get
{
return Enumerable
.Range(0, this.TypeCount)
.Select(x => new SelectListItem
{
Value = x.ToString(),
Text = x.ToString()
})
}
}

... some other properties
}

然后在您的 View 中,您只需将下拉列表绑定(bind)到 View 模型的相应属性:

@model ebs.Models.RatesList
@{ Layout = null; }
<tr>
<td>
@Html.TextBoxFor(modelItem => modelItem.TypeID)
</td>
<td>
@Html.DropDownListFor(modelType => modellType.NumSelected, Model.Values)
</td>
</tr>

关于ASP.Net MVC 动态 DropDownList - 如何创建一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21813802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com