猿教程 Logo

使用HtmlHelper创建DropDownList

在本节中,了解如何使用HtmlHelper在razor视图中生成dropdownlist控件。

HtmlHelper类包括两个扩展方法来在Razor视图中生成<select>元素:DropDownList()和DropDownListFor()。

我们将使用下面的Student模型来演示DropDownList()和DropDownListFor()方法。

相关实例:

public class Student
{
    public int StudentId { get; set; }
    [Display(Name="Name")]
    public string StudentName { get; set; }
    public Gender StudentGender { get; set; }
}

public enum Gender
{
    Male,
    Female    
}

DropDownList():

Html.DropDownList()方法生成具有指定名称,列表项和html属性的select元素。

DropDownList()方法签名:

MvcHtmlString Html.DropDownList(string name,IEnumerable <SelectLestItem> selectList,string optionLabel,object htmlAttributes)

请访问MSDN了解DropDownList()方法的所有重载。

相关实例:

@using MyMVCApp.Models

@model Student

@Html.DropDownList("StudentGender", 
                    new SelectList(Enum.GetValues(typeof(Gender))),
                    "Select Gender",
                    new { @class = "form-control" })

运行结果:

<select class="form-control" id="StudentGender" name="StudentGender">
    <option>Select Gender</option> 
    <option>Male</option> 
    <option>Female</option> </select>

在上面的例子中,第一个参数是我们要显示列表项的属性名。 第二个参数是要包括在下拉列表中的值的列表。 我们使用Enum方法来获取性别枚举值。 第三个参数是一个标签,它将是第一个列表项,第四个参数是用于html属性,如CSS应用于下拉列表。

请注意,您可以将MyMVCApp.Models命名空间添加到Views文件夹中的web.config中的<namespaces>部分,而不是使用@using在所有视图中包含namespces。


DropDownListFor:

DropDownListFor帮助方法是一个强类型的扩展方法。 它为使用lambda表达式指定的属性生成<select>元素。 DropDownListFor方法将指定的模型对象属性绑定到dropdownlist控件。 因此它会根据属性值自动列出DropDownList中的项目。

DropDownListFor()方法签名:

MvcHtmlString Html.DropDownListFor(Expression <Func <dynamic,TProperty >> expression,IEnumerable <SelectLestItem> selectList,string optionLabel,object htmlAttributes)

访问MSDN知道DropDownListFor()的所有重载。

以下示例为上述Gender枚举创建下拉列表。

相关实例:

@using MyMVCApp.Models

@model Student

@Html.DropDownListFor(m => m.StudentGender, 
                    new SelectList(Enum.GetValues(typeof(Gender))), 
                    "Select Gender")

运行结果:

<select class="form-control" id="StudentGender" name="StudentGender">
    <option>Select Gender</option> 
    <option>Male</option> 
    <option>Female</option> </select>

在上面的示例中,DropDownListFor()方法中的第一个参数是一个lambda表达式,它指定要与select元素绑定的model属性。 我们指定了枚举类型的StudentGender属性。 第二个参数指定使用SelectList显示到下拉列表中的项目。 第三个参数是optionLabel,它将是dropdownlist的第一个项目。 现在,它生成<select>元素,id&name设置为属性名称 - StudentGener和两个列表项 - Male&Female如下所示。



版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/mvc/mvc-helper-DropDownList.html