繁体   English   中英

如何为ASP.NET MVC HTML Helper Droplist指定“值”

[英]How to specify “value” for asp.net mvc Html helper droplist

我想为我的选择列表框中的每个选项指定一个值,但是我正在使用html助手生成它。

所以我有这个

<%= Html.DropDownList("DropDownList") %>  

//控制器

ViewData["DropDownList"] = new SelectList(MyClass.GenerateListBox());

// MyClass

        public static List<string> GenerateListBox()
        {
            List<string> listBox= new List<string>();
            listBox.Add("Bye");
            listBox.Add("hi");
            listBox.Add("something");

            return listBox;
        }

因此,我看到SelectList有一个“ stringDataField”,但它只是一个字符串而不是列表,因此现在可以确定要更改的内容。

我还需要列出其他种类的清单吗?

谢谢

使用此构造函数:

ViewData["DropDownList"] = new SelectList(GenerateListBox(), "Value", "Text");

public static List<SelectListItem> GenerateListBox()
{
    List<SelectListItem> listBox = new List<SelectListItem>();
    listBox.Add(new SelectListItem { Text = "bye", Value = "byeValue" });
    listBox.Add(new SelectListItem { Text = "hi", Value = "hiValue" });
    listBox.Add(new SelectListItem { Text = "something", Value = "somethingValue" });

    return listBox;
}

使用需要两个字符串SelectList构造函数

具体来说,不是给它一个字符串列表,而是给它一个具有DisplayName和Value属性的对象的列表(例如, KeyValuePair<String, String> ,尽管我建议更具体一些),然后传递这些对象的名称该构造函数的属性。 这将设置DataTextField和DataValueField属性。

编辑 :我的意思是,不是让您的GenerateListBox方法返回List<String> ,而是应该让它返回List<YourClass> ,并使YourClass类具有DisplayName和Value的属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM