gpt4 book ai didi

c# - 如何从整数列表中设置选择元素的值和文本值

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

如何设置下拉列表的值和文本值,同时将其绑定(bind)到 View 模型?

我有一个范围从 1 到 100 的数量列表。我想将此整数列表传递到我的 View ,并将它们填充到下拉列表中,并使值和文本值等于相应的数量。例如我正在追求这样的事情:

<select>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
...
<option value="100">100</option>
</select>

我目前只得到:

<select>
<option>1</option>
<option>2</option>
<option>3</option>
...
<option>100</option>
</select>

我的 View 模型:

public class ProductViewModel : ViewModelBase
{
public ProductViewModel()
{
Quantities = new List<int>();
for (int i = 1; i <= 100; ++i)
{
Quantities.Add(i);
}
}

public int Quantity { get; set; }

public List<int> Quantities { get; set; }

// Other view model properties left out
}

我的 Controller :

public ActionResult Test()
{
ProductViewModel model = new ProductViewModel();

return View(model);
}

我的看法:

@model MyProject.Models.ProductViewModel

@Html.DropDownListFor(m => m.Quantity, new SelectList(Model.Quantities))

最佳答案

一个解决方法是使用一点 LINQ:

new SelectList(Model.Quantities.Select(i => new {Text = i, Value = i}),
"Text", "Value")

匿名对象中的一个字段也可以,但我发现单独的字段更明确。

否则,您可以将 SelectList 对象放入模型中,然后可以选择创建单独的 SelectListItem。但从你所在的位置来看,我认为上面的技巧是最短的方法。

更新。我将保留答案,但是 Stephen Muecke对原始帖子的评论基本上使其毫无用处。正确的答案是您不需要这个,因为在将表单发布到服务器时使用缺少值文本的情况。

关于c# - 如何从整数列表中设置选择元素的值和文本值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31985447/

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