在 mvc 中使用下拉列表

时间:2023-03-09 02:32:39
在 mvc 中使用下拉列表

在mvc中经常会使用到下拉列表,以下以两种方式来实现,一种是以  @Html.DropDownList 扩展方法,一种是以 <select><option></option></select> 这样的 html 代码和 HashTable来实现

1.  @Html.DropDownList 扩展方法

View 代码:

            @if (ViewData["listCategory"] != null)
{
@Html.DropDownList("listcategory", ViewData["listCategory"] as IEnumerable<SelectListItem>, "---请选择类型---")
}

Control 代码:

 ViewData["listCategory"] = cardCategory.GetAll();
  public List<Sns.Management.Model.CardCategory> GetAll()
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select ");
strSql.Append(" id,category_name");
strSql.Append(" from pro_card_category");
strSql.Append(" order by sort asc");
DataSet ds = DbHelperMySQL.Query(strSql.ToString());
System.Collections.Hashtable hashtable = new System.Collections.Hashtable(); List<Sns.Management.Model.CardCategory> mylist = new List<Model.CardCategory>(); if (ds.Tables[].Rows.Count > )
{
foreach (DataRow row in ds.Tables[].Rows)
{
Sns.Management.Model.CardCategory model = new Model.CardCategory();
model.Id = row[].ToString();
model.CategoryName = row[].ToString();
mylist.Add(model);
}
}
return mylist;
}

2. 使用 html 标签 + HashTable

View 代码:

            <select style="width:130px;" id="CategoryId" name="CategoryId">
<option value="0">请选择分类名称</option>
@if (ViewData["listCategory"] != null)
{
System.Collections.Hashtable myhashtable = ViewData["listCategory"] as System.Collections.Hashtable; foreach (System.Collections.DictionaryEntry item in myhashtable)
{
if (Model != null && Model.CategoryId == item.Key.ToString())
{
<option value="@item.Key" selected="selected">@item.Value</option> }
else
{
<option value="@item.Key">@item.Value</option>
}
}
} </select>
            <select style="width:130px;" id="CategoryId" name="CategoryId">
<option value="">请选择分类名称</option>
@if (ViewData["listCategory"] != null)
{
System.Collections.Hashtable myhashtable = ViewData["listCategory"] as System.Collections.Hashtable; foreach (System.Collections.DictionaryEntry item in myhashtable)
{
<option value="@item.Key">@item.Value</option>
}
} </select>

Control 代码:

 ViewData["listCategory"] = skinCategory.GetAll();
  /// <summary>
/// hashtable key: id的值, value: 分类名称
/// </summary>
/// <returns></returns>
public System.Collections.Hashtable GetAll()
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select ");
strSql.Append(" id,category_name");
strSql.Append(" from pro_skin_category");
strSql.Append(" order by sort asc");
DataSet ds = DbHelperMySQL.Query(strSql.ToString());
System.Collections.Hashtable hashtable = new System.Collections.Hashtable();
if (ds.Tables[].Rows.Count > )
{
foreach (DataRow row in ds.Tables[].Rows)
{
hashtable.Add(row[].ToString(), row[].ToString());
}
}
return hashtable; }