文章内容

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 = "" });
else
using(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是要默认显示的项。

本文由黄兵的个人博客原创。

转载请注明出处: 黄兵的个人博客 - ASP.NET MVC 让@Html.DropDownList显示默认值

分享到:

发表评论

评论列表