在 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>, "---请选择类型---")
            }
View Code

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[0].Rows.Count > 0)
            {
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    Sns.Management.Model.CardCategory model = new Model.CardCategory();
                    model.Id = row[0].ToString();
                    model.CategoryName = row[1].ToString();
                    mylist.Add(model);
                }
            }
            return mylist;
        }
View Code

2. 使用 html 标签 + HashTable

 View 代码:

            <select style="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="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)
                    {
                        <option value="@item.Key">@item.Value</option>
                    }
                }

            </select>
View Code

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[0].Rows.Count > 0)
            {
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    hashtable.Add(row[0].ToString(), row[1].ToString());
                }
            }
            return hashtable;

        }
View Code
原文地址:https://www.cnblogs.com/wisdo/p/4357621.html