gpt4 book ai didi

asp.net-mvc - 如何将永不更改的数据源到我的 View 中的下拉列表?

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

我有很多 View ,它们都包含一个下拉选择列表来显示状态。三个不同且不变的状态值“Release”、“Review”和“New”。我一直听说我的 Controller 应该为我的 View 提供所有数据,但这甚至适用于这样的静态数据。

谁能建议我应该如何最好地编码这个选择框?

请注意,这是针对 C# ASP.NET MVC3

最佳答案

我的建议与上面的有点不同。

在某个地方你应该有一个基本模型或一个基本 Controller (模型更适合我的解决方案)。

在那个类(class)坚持一个这样的方法

        public static SelectList MakeSelectListStatus(IEnumerable Coll, bool emptyElem = true)
{
List<SelectListItem> Items = new List<SelectListItem>();
if (emptyElem)
Items.Add((new SelectListItem { Text = " ", Value = "-1" }));
foreach (var Elem in Coll)
{
SelectListItem AddMe = new SelectListItem();
AddMe.Text = Elem.Descr;
AddMe.Value = Elem.ID.ToString();
Items.Add(AddMe);
}
SelectList Res = new SelectList(Items, "Value", "Text");
return Res;
}

然后在您的 View 中只需使用:
@Html.DropDownListFor(m => m.id, BaseModel.MakeSelectListStatus(Model.Statuses, false), new { id = "Statuses" })

这种方法有两大优势:
1. 你在任何地方都没有 HTML 魔法字符串
2. 如果您的集合设计得当,您可以使用一种方法来实例化每个选择列表

主要缺点是有一个基本模型,但可以通过某个地方的静态类轻松解决。

但是,如果你觉得有一个助手对你更好,我建议你让一个助手返回 SelectList 对象,而不是 HTML 标记,不知道为什么,但我认为它更通用。

HTH

关于asp.net-mvc - 如何将永不更改的数据源到我的 View 中的下拉列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8663762/

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