mvc3[1]DropDownList

來源:互聯網
上載者:User

1.建議使用這種方法private static readonly string DEFAULT_VALUE= "請選擇";List<SelectListItem> levels = newList<SelectListItem>();levels.Add(new SelectListItem { Text =DEFAULT_VALUE, Value = DEFAULT_VALUE });levels.AddRange(newList<SelectListItem>() {   new SelectListItem { Text = "銷售人員", Value ="1" }});ViewBag.Levels = levels;@Html.DropDownListFor(model =>model.Level, ViewBag.Levels as IEnumerable<SelectListItem>)  2.   List<SelectListItem> areas =                      areaBo.Find(c =>c.Valid == (Int32)IsValidStatus.Valid)                      .Select(c => newSelectListItem { Text = c.Name, Value = c.Id.ToString() })                      .OrderBy(c => c.Text)                      .ToList();           areas.Insert(0, item);   <td colspan="3" class="left" style="vertical-align:middle;">                   @Html.DropDownList("Area", @ViewBag.Area asIEnumerable<SelectListItem>)                </td>

Area是一個實體的一個屬性,伺服器端擷取值的時候直接是model名字.值;

由於使用第二種方法重構前的代碼

 #region 查詢條件設定        public void SetRegionWhere(string type = "f1ormu")        {            #region 得到資料庫資料            IEnumerable<SalesTerritory> territories = null;            int staffId = LoginHelper.GetID();            territories = boTerritory.Find(t => t.ManagerId == staffId && t.State == (Int32)IsValidStatus.Valid);            Staff staffEntity = boStaff.FindByKey(LoginHelper.GetID());            List<SelectListItem> filiales = boFiliale             .Find(f => f.Valid == (Int32)IsValidStatus.Valid)             .Select(f => new SelectListItem { Text = f.Name, Value = f.Id.ToString() })             .OrderBy(f => f.Text)             .ToList();            filiales.Insert(0, item);            List<SelectListItem> clusters = boCluster              .Find(c => c.Valid == (Int32)IsValidStatus.Valid)              .Select(c => new SelectListItem { Text = c.ClusterName, Value = c.Id.ToString() })              .OrderBy(c => c.Text)              .ToList();            clusters.Insert(0, item);            //擷取當前登入使用者對應的所有銷售代碼            List<SelectListItem> salescodes = boTerritory.Find(n => n.ManagerId == -2238).Distinct()                .Select(s => new SelectListItem { Text = s.SalesCd, Value = s.Id.ToString() }).ToList();            salescodes.Insert(0, item);            List<SelectListItem> areas =                      areaBo.Find(c => c.Valid == (Int32)IsValidStatus.Valid)                      .Select(c => new SelectListItem { Text = c.Name, Value = c.Id.ToString() })                      .OrderBy(c => c.Text)                      .ToList();            areas.Insert(0, item);            #endregion            #region            if (type == "email")            {                if (Session[sessionEmailList] != null)                {                    ViewEmailSiteCodeSearchCriteria wheremode = Session[sessionEmailList] as ViewEmailSiteCodeSearchCriteria;                    if (!string.IsNullOrWhiteSpace(wheremode.Area.ToString()))                    {                        ViewBag.Area = new SelectList(areas, "Value", "Text", wheremode.Area);                    }                    else                    {                        ViewBag.Area = areas;                    }                    if (!string.IsNullOrWhiteSpace(wheremode.Cluster.ToString()))                    {                        ViewBag.Cluster = new SelectList(clusters, "Value", "Text", wheremode.Cluster);                    }                    else                    {                        ViewBag.Cluster = clusters;                    }                    if (!string.IsNullOrWhiteSpace(wheremode.Filiale.ToString()))                    {                        ViewBag.Filiale = new SelectList(filiales, "Value", "Text", wheremode.Filiale);                    }                    else                    {                        ViewBag.Filiale = filiales;                    }                    if (!string.IsNullOrWhiteSpace(wheremode.SalesCode.ToString()))                    {                        ViewBag.SalesCode = new SelectList(salescodes, "Value", "Text", wheremode.SalesCode);                    }                    else                    {                        ViewBag.SalesCode = salescodes;                    }                    return;                }            }            if (type == "sms")            {                if (Session[sessionEmailList] != null)                {                    ViewSmsSiteCodeSearchCriteria wheremode = Session[sessionSMSList] as ViewSmsSiteCodeSearchCriteria;                    if (!string.IsNullOrWhiteSpace(wheremode.Area.ToString()))                    {                        ViewBag.Area = new SelectList(areas, "Value", "Text", wheremode.Area);                    }                    else                    {                        ViewBag.Area = areas;                    }                    if (!string.IsNullOrWhiteSpace(wheremode.Cluster.ToString()))                    {                        ViewBag.Cluster = new SelectList(clusters, "Value", "Text", wheremode.Cluster);                    }                    else                    {                        ViewBag.Cluster = clusters;                    }                    if (!string.IsNullOrWhiteSpace(wheremode.Filiale.ToString()))                    {                        ViewBag.Filiale = new SelectList(filiales, "Value", "Text", wheremode.Filiale);                    }                    else                    {                        ViewBag.Filiale = filiales;                    }                    if (!string.IsNullOrWhiteSpace(wheremode.SalesCode.ToString()))                    {                        ViewBag.SalesCode = new SelectList(salescodes, "Value", "Text", wheremode.SalesCode);                    }                    else                    {                        ViewBag.SalesCode = salescodes;                    }                    return;                }            }            if (type == "f1")            {                if (Session[sessionF1List] != null)                {                    ViewF1SiteCodeSearchCriteria wheremode = Session[sessionF1List] as ViewF1SiteCodeSearchCriteria;                    if (!string.IsNullOrWhiteSpace(wheremode.Area.ToString()))                    {                        ViewBag.Area = new SelectList(areas, "Value", "Text", wheremode.Area);                    }                    else                    {                        ViewBag.Area = areas;                    }                    if (!string.IsNullOrWhiteSpace(wheremode.Cluster.ToString()))                    {                        ViewBag.Cluster = new SelectList(clusters, "Value", "Text", wheremode.Cluster);                    }                    else                    {                        ViewBag.Cluster = clusters;                    }                    if (!string.IsNullOrWhiteSpace(wheremode.Filiale.ToString()))                    {                        ViewBag.Filiale = new SelectList(filiales, "Value", "Text", wheremode.Filiale);                    }                    else                    {                        ViewBag.Filiale = filiales;                    }                    if (!string.IsNullOrWhiteSpace(wheremode.SalesCode.ToString()))                    {                        ViewBag.SalesCode = new SelectList(salescodes, "Value", "Text", wheremode.SalesCode);                    }                    else                    {                        ViewBag.SalesCode = salescodes;                    }                    return;                }            }            if (type == "mu")            {                if (Session[sessionF1List] != null)                {                    ViewMUSiteCodeSearchCriteria wheremode = Session[sessionF1List] as ViewMUSiteCodeSearchCriteria;                    if (!string.IsNullOrWhiteSpace(wheremode.Area.ToString()))                    {                        ViewBag.Area = new SelectList(areas, "Value", "Text", wheremode.Area);                    }                    else                    {                        ViewBag.Area = areas;                    }                    if (!string.IsNullOrWhiteSpace(wheremode.Cluster.ToString()))                    {                        ViewBag.Cluster = new SelectList(clusters, "Value", "Text", wheremode.Cluster);                    }                    else                    {                        ViewBag.Cluster = clusters;                    }                    if (!string.IsNullOrWhiteSpace(wheremode.Filiale.ToString()))                    {                        ViewBag.Filiale = new SelectList(filiales, "Value", "Text", wheremode.Filiale);                    }                    else                    {                        ViewBag.Filiale = filiales;                    }                    if (!string.IsNullOrWhiteSpace(wheremode.SalesCode.ToString()))                    {                        ViewBag.SalesCode = new SelectList(salescodes, "Value", "Text", wheremode.SalesCode);                    }                    else                    {                        ViewBag.SalesCode = salescodes;                    }                    return;                }            }            #endregion            ViewBag.Area = areas;            ViewBag.Cluster = clusters;            ViewBag.Filiale = filiales;            ViewBag.SalesCode = salescodes;        }

重構後的方法1 方法

  #region 查詢條件設定        public void SetRegionWhere()        {            #region 得到資料庫資料            IEnumerable<SalesTerritory> territories = null;            int staffId = LoginHelper.GetID();            territories = boTerritory.Find(t => t.ManagerId == staffId && t.State == (Int32)IsValidStatus.Valid);            Staff staffEntity = boStaff.FindByKey(LoginHelper.GetID());            List<SelectListItem> filiales = boFiliale             .Find(f => f.Valid == (Int32)IsValidStatus.Valid)             .Select(f => new SelectListItem { Text = f.Name, Value = f.Id.ToString() })             .OrderBy(f => f.Text)             .ToList();            filiales.Insert(0, item);            List<SelectListItem> clusters = boCluster              .Find(c => c.Valid == (Int32)IsValidStatus.Valid)              .Select(c => new SelectListItem { Text = c.ClusterName, Value = c.Id.ToString() })              .OrderBy(c => c.Text)              .ToList();            clusters.Insert(0, item);            //擷取當前登入使用者對應的所有銷售代碼            List<SelectListItem> salescodes = boTerritory.Find(n => n.ManagerId == -2238).Distinct()                .Select(s => new SelectListItem { Text = s.SalesCd, Value = s.Id.ToString() }).ToList();            salescodes.Insert(0, item);            List<SelectListItem> areas =                      areaBo.Find(c => c.Valid == (Int32)IsValidStatus.Valid)                      .Select(c => new SelectListItem { Text = c.Name, Value = c.Id.ToString() })                      .OrderBy(c => c.Text)                      .ToList();            areas.Insert(0, item);            #endregion            ViewBag.Area = areas;            ViewBag.Cluster = clusters;            ViewBag.Filiale = filiales;            ViewBag.SalesCode = salescodes;        }        #endregion

在control返回的時候需要返回model既可以

     [HttpPost]        public ActionResult EmailList(int? page, ViewEmailSiteCodeSearchCriteria wheremodel)        {            //載入頁面的查詢資訊             SetRegionWhere();            CreateSentResultList("email");            if (wheremodel.IsSearch == 1)            {                Session[sessionEmailList] = wheremodel;                GetEmailList(wheremodel, 1);            }            return View("EmailList", wheremodel);        }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.