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

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

情况:

一张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>
目录
相关文章
|
4天前
|
XML 前端开发 数据格式
请描述如何使用`BeautifulSoup`或其他类似的库来解析 HTML 或 XML 数据。
【2月更文挑战第22天】【2月更文挑战第67篇】请描述如何使用`BeautifulSoup`或其他类似的库来解析 HTML 或 XML 数据。
|
4天前
|
JSON 前端开发 Java
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
63 0
|
4天前
|
XML 前端开发 数据格式
BeautifulSoup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据
【5月更文挑战第10天】BeautifulSoup 是 Python 的一个库,用于解析 HTML 和 XML 文件,即使在格式不规范的情况下也能有效工作。通过创建 BeautifulSoup 对象并使用方法如 find_all 和 get,可以方便地提取和查找文档中的信息。以下是一段示例代码,展示如何安装库、解析 HTML 数据以及打印段落、链接和特定类名的元素。BeautifulSoup 还支持更复杂的查询和文档修改功能。
23 1
|
7月前
|
移动开发 JavaScript 前端开发
jsoup爬取HTML数据
jsoup是一个用于处理真实世界HTML的Java库。它提供了一个非常方便的API,用于获取URL、提取和操作数据,使用最好的HTML5 DOM方法和CSS选择器。
42 0
jsoup爬取HTML数据
|
4天前
|
前端开发 JavaScript UED
【专栏:HTML基础篇】HTML列表与表格:展示数据的两种方式
【4月更文挑战第30天】本文探讨了HTML中的列表和表格两种元素在网页设计中的重要性。无序列表(`&lt;ul&gt;`)和有序列表(`&lt;ol&gt;`)用于呈现相关项目,前者常用于导航菜单,后者适合有序信息。表格(`&lt;table&gt;`)用于展示结构化数据,通过`&lt;tr&gt;`、`&lt;td&gt;`和`&lt;th&gt;`定义行和单元格。尽管简单,列表和表格在内容呈现和用户体验上起着关键作用。然而,响应式设计趋势下,表格可能被更灵活的布局替代,复杂数据展示则可借助JavaScript库提升交互性。正确使用这些基础元素能有效组织信息,创建优质网页。
|
4天前
html_ifream与父级窗口之间的数据传递(window和document)
html_ifream与父级窗口之间的数据传递(window和document)
16 0
|
4天前
|
数据采集 前端开发 网络协议
如何使用代理IP通过HTML和CSS采集数据
如何使用代理IP通过HTML和CSS采集数据
|
4天前
|
数据采集 XML 数据挖掘
使用Python打造爬虫程序之HTML解析大揭秘:轻松提取网页数据
【4月更文挑战第19天】本文介绍了HTML解析在爬虫技术中的重要性,并通过Python的BeautifulSoup库展示了如何解析和提取数据。文章涵盖了HTML文档结构、使用BeautifulSoup的基本方法,如`find_all()`、选择器(标签、类、ID选择器)以及提取文本、属性和链接。此外,还讨论了遍历和处理嵌套元素的技巧。
|
4天前
|
JSON 前端开发 JavaScript
从假数据到动态表格:一个简单的JavaScript和HTML示例
从假数据到动态表格:一个简单的JavaScript和HTML示例
|
4天前
|
JavaScript 前端开发
【HTML+REACT+ANTD 表格操作】处理(改变)数据,改变DOM
【HTML+REACT+ANTD 表格操作】处理(改变)数据,改变DOM