- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
当我创建一个 SelecList 时,我希望能够手动添加 SelecListItem 并为此使用以下代码:
List<SelectListItem> Provinces = new List<SelectListItem>();
Provinces.Add(new SelectListItem() { Text = "Northern Cape", Value = "NC" });
Provinces.Add(new SelectListItem() { Text = "Free State", Value = "FS" });
Provinces.Add(new SelectListItem() { Text = "Western Cape", Value = "WC" });
SelectList lstProvinces = new SelectList(Provinces);
而不是这个:
var lstProvinces = new SelectList(new[] { "Northern Cape", "Free State", "Western Cape" });
创建 SelectList 后,我通过 ViewBag 将其传递给 DropDownListFor:
Html.DropDownListFor(m => m.StartPointProvince, (SelectList)ViewBag.Provinces)
但是,当我使用第一种方法创建 SelectList 时,它不起作用 - 它将 3 个值添加到下拉列表中,但所有值都显示为: *输出截图
但是当我使用第二种方法时,它工作正常。我希望使用第一种方法,因为我希望能够指定每个项目的文本和值。
最佳答案
问题是 SelectList(IEnumerable)
constructor doesn't accept SelectListItem
's (至少不能作为 SelectListItem
添加到其 Items
集合中)。它只接受一些任意对象的集合,这些对象将用于生成完全不相关的内部 SelectListItem
集合。
如果需要,可以使用 SelectList(IEnumerable, string, string)
以这种方式构造函数:
List<SelectListItem> Provinces = new List<SelectListItem>();
Provinces.Add(new SelectListItem() { Text = "Northern Cape", Value = "NC" });
Provinces.Add(new SelectListItem() { Text = "Free State", Value = "FS" });
Provinces.Add(new SelectListItem() { Text = "Western Cape", Value = "WC" });
this.ViewBag.Provinces = new SelectList(Provinces, "Value", "Text");
它会起作用的。但它是不必要的,因为您创建了复杂的 SelectListItem
项,SelectList
不会使用这些项 - 它只会将它们视为任何其他项数据对象。
以同样的方式,您可以使用其他一些更简单的类来代替 SelectListItem
:
public class SelectListModel
{
public String Text { get; set; }
public String Value { get; set; }
}
...
Provinces.Add(new SelectListModel() { Text = "Northern Cape", Value = "NC" });
关于c# - 手动将 SelectListItem 添加到 SelectList 以在 DropDownListFor 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29869508/
我正在使用 WatiN 进行一些网络测试,但遇到了选择列表的问题。 我必须先浏览几页,添加一个“类别”元素,该元素将填充所述麻烦的选择列表。 我已经能够使用 ByValue 从列表中轻松选择一个元素,
我是 javascript 的新手,目前正在研究 knockoutjs 库。这是我的问题。我有一个从可观察数组填充的选择列表。当我从选择列表中选择一个值并单击保存按钮时,我希望将该值保存在一个变量中,
我有这个选择列表: Please select a parent category New Store Extensions Remodel Bespoke Signage
我正在尝试在选择列表中设置多个值: SelectList List = new SelectList(MyListItems, "valField", "dataField", ); 我使用什么对象/
我的 View 中有一堆下拉列表,例如这个: @Html.DropDownListFor(model => model.Process, Model.ProcessList) 他们都接受一个Selec
我试图在 dropdownlist 文本中显示多个值。示例如下。 SelectList(Parts, "pno", "pcode"+"pname") 在哪里 pno 是零件编号。 pcode 是部分代
我目前在获取 SelectList 时遇到了一些问题默认为定义的初始值。我创建了一个片段来演示这个问题:https://dotnetfiddle.net/ozroT1 本质上,我希望我的 DropDo
在 MVC4 中: 我的模型中有以下用于下拉列表的属性: public SelectList Subjects { get; set; } 我在页面加载时在我的 Index() 操作中设置 Subje
这可能真的很简单...我正在尝试创建一个 SelectList,其中包含从当前年份开始到 2008 年的年份。情况总是如此。例如,在 2020 年,我的 SelectList 将包含 2020 - 2
我有以下操作方法: public JsonResult LoadSitesByCustomerName(string customername) { var customerlist = re
假设我有一个这样的枚举(仅作为示例): public enum Direction{ Horizontal = 0, Vertical = 1, Diagonal = 2 }
所以我在这个方法中生成了一个 SelectList : public static SelectList HolidayDays() { SelectList retval = Generat
我有一个 IDictionary,现在我想在选择列表中使用这些值。我该怎么做呢? 谢谢。 最佳答案 刚设置"Value"和 "Key"为 dataValueField和 dataTextField .
请帮忙使用 Ajax 填充 SelectList 和选项组吗? 我已正确编码添加项目,但不确定如何添加选项组。 这是我的有效 Ajax 代码: var category = $(this).val()
我在通过 QueryOver 选择时遇到一些问题,这是我的模型类: public class BaseModel { public virtual int Id { get; set; }
所以下面的代码为我提供了一个下拉框,其中包含来自司机的姓名列表,但它只是名字,我也有姓氏,我该怎么做。我的代码是... @Html.DropDownListFor(model => model.Dri
我刚刚开始在 MVC 项目中学习 AutoMapper。我有一个基本实体“Attendee”,其中包含一个性别字符串字段(可能值为“M”或“F”)。 我已经在 Attendee 和 AttendeeE
我正在努力创建一个包含下拉列表的 View 。为了生成选择列表项,我编写了一个方法来返回 SelectListItem 的列表。此下拉列表所需 - 其中一个具有 Selected 属性设置为 true
我有一个具有以下属性的类。它从现有列表构造一个 SelectList 对象,然后设置所选项目。 public SelectList ProviderTypeList { get {
我正在尝试为我的 Controller 中的下拉菜单设置选定值,并通过 ViewBag 将其传递到我的 View 。当我调试时,所有正确的值都被传递给 Controller 和 View ,但当它
我是一名优秀的程序员,十分优秀!