文章内容
2017/5/17 8:51:31,作 者: 黄兵
ASP.NET MVC 让@Html.DropDownList显示默认值
在使用@Html.DropDownList的过程中,发现它的用法很局限,比如在加载的时候显示设定的默认项或者调整它的显示样式,在网上查了一些资料,终于把这个问题解决了。
前端代码如下:
<div class="hr-line-dashed FirstProject"></div><div class="form-group FirstProject">@Html.LabelFor(model => model.FirstProject, new { @class = "control-label col-md-2" })<div class="col-sm-10">@Html.DropDownList("FirstProId", ViewData["firstItem"] as SelectList,new { @class = "form-control" })@Html.ValidationMessageFor(model => model.FirstProject, "", new { @class = "text-danger" })</div></div><div class="hr-line-dashed SecondProject"></div><div class="form-group SecondProject">@Html.LabelFor(model => model.SecondProject, new { @class = "control-label col-md-2" })<div class="col-sm-10">@Html.DropDownList("SecondProId", ViewData["SecondItem"] as SelectList, new { @class = "form-control" })@Html.ValidationMessageFor(model => model.SecondProject, "", new { @class = "text-danger" })</div></div>
后端代码如下:
public ActionResult EditArticle(int? Id){if (Id == 0)return RedirectToAction("Index", "Home", new { area = "" });elseusing(UnitOfWork uow=new UnitOfWork()){var ArticleItem=uow.ArticleRepository.Get(x=>x.Id==Id);BlogAddArticleViewModel ArticleModel = new BlogAddArticleViewModel();ArticleModel.Id = ArticleItem.Id;ArticleModel.Title = ArticleItem.Title;ArticleModel.ImgUrl = ArticleItem.ImgUrl;ArticleModel.Keyword = ArticleItem.SEO.Keyword;ArticleModel.Description = ArticleItem.SEO.Description;ArticleModel.Body = ArticleItem.ArticleBody;ArticleModel.SEO_Id = ArticleItem.SEOId;ArticleModel.CreationTime = ArticleItem.CreateTime;ArticleModel.News = ArticleItem.News;//查询作者var authories = uow.AuthorRepository.GetAll().ToList();ViewData["authories"] = new SelectList(authories, "Id", "AuhtorName");//查询第一个项目var firstItem = uow.FirstProjectRepository.GetAll().ToList();ViewData["firstItem"] = new SelectList(firstItem, "Id", "FirstProName");//查询第二个项目var SecondItem = uow.SecondProjectRepository.GetAll().Where(x=>x.FirstProId==ArticleItem.FirstProject).ToList();var DefaultItem=SecondItem.Where(x=>x.Id==ArticleItem.SecondProject);ViewData["SecondItem"] = new SelectList(SecondItem, "Id", "SecondProName",DefaultItem);return View(ArticleModel);}}
注意这里两行:
var DefaultItem=SecondItem.Where(x=>x.Id==ArticleItem.SecondProject);ViewData["SecondItem"] = new SelectList(SecondItem, "Id", "SecondProName",DefaultItem);
DefaultItem是要默认显示的项。
本文由黄兵的个人博客原创。
评论列表