@Html.DropDownListFor获取用户选中的数据并传到后台

情况:

一张Movie表,一张Level表
当添加Movie信息的时候,属性Movie.level从Level表获取,并以DropDown的形式显示,用户填写好信息之后获取用户选中的值提交到后台,保存到数据库。

获取数据
** 后台MovieController **

public ActionResult Create()
        {
            MovieDBContext dbContext = new MovieDBContext();
            ViewBag.level = new SelectList(dbContext.Levels, "LevelName", "LevelName");
           //将数据库Level表的数据填充到SelectList并通过ViewBag传到前端
            return View();
        }

** 前端 展示数据**

<div class="form-group">
            <div class="control-label col-md-2">
                <b>电影等级</b>
            </div>
            <div class="col-md-10">
                @Html.DropDownListFor(Model => Model.level.LevelName,(IEnumerable<SelectListItem>)ViewBag.level)
              //因为Movie.level 保存的其实是一个Level类型的对象,但是Dropdown选中的值是一个string值,所以我们将选中的值赋给Movie.level.LevelName
            </div>
        </div>

** 后台处理数并添加到数据库 **

 [HttpPost]
        public ActionResult Create(Movie movie)
        {
            MovieDBContext dbContext = new MovieDBContext();
            Level l = dbContext.Levels.FirstOrDefault(u => u.LevelName == movie.level.LevelName);
            //通过在前端得到的LevelName属性反过来查到这个对象,并且赋给movie.level 
            movie.level = l;
            dbContext.Movies.Add(movie);
            dbContext.SaveChanges();
            return RedirectToAction("ListTemplete");
        }

** List展示数据的时候 **

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Title)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.ReleaseTime)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Genre)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Price)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.level.LevelName) 
             //item.level.LevelName
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
            @Html.ActionLink("Details", "Details", new { id=item.ID }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.ID })
        </td>
    </tr>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值