一:后台使用SelectListItem 传值给前台显示Select下拉框

我们先来看数据库的订单表,里面有3条订单,他们的用户id对应了 UserInfo用户表的数据,现在我们要做的是添加一个Order控制器,显示订单列表,并且在修改订单的时候,把用户的id 用 select 下拉框显示出来,并且可以提交修改数据

 

1.1 我们通过比较原始的方法,来把数据 传递到前台后,前台使用  循环来显示 select 并且显示是哪个元素被选中

我们在前台的cshtml中,使用 @model 命令 指定当前的 Model类型为 order强类型,这样的好处就是方便VS编辑器能直接点出来属性

最后html显示为

 

这种方法比较老土,我们结合 SelectListItem 传值给前台显示Select下拉框

1.2 SelectListItem 传值给前台显示Select下拉框

这样就搞定了.

二:mvc后台Action接收浏览器传值的4种方式;

现在,我们来实现修改,顺便复习 mvc后台Action接收浏览器传值的4种方式;

1:使用 数据绑定机制,当前台传递过来的数据和后台的类型相同的时候,MVC会自动去匹配相同的名称,并且赋值.例如前台有 Id传递给后台,刚好Order类有Id属性,那么就会赋值给后台,这一个过程包含有 反射
2:原始的 Request.Form 或者是 Request.QueryString
3:如果传递过来的参数是  FormCollection form 集合的话,就直接用 form["key"] 来获取
4:根据路由表里面的 路由规则,进行匹配  这里刚好id就是路由里面的占位符id ,那么就会进行赋值

 

三: 后台Action向前台View视图传递数据的四种方式

第1种,通过 ViewBag     传值给前台View视图 
第2种,通过 ViewDate    传值给前台View视图 
第3种,通过 TempDate    传值给前台View视图 
第4种,通过 return View( 这里有个值)  传递 model 给前台View视图 (实际是通过 ViewDate.Model 传递给前台View视图 )

为什么 后台Action中 传递 这4种方法,前台就有对应的4种获取数据的方法呢?

我们首先来看我们的 OrderController 里面的 Action里面的 Return View方法,这个方法是继承自父类 Controller里面的方法,这个方法,就帮我们解释了 为什么会传递 model  , ViewDate 和  TempDate数据

那 还有个 ViewBag 呢? 我们找到 Controller 的父类  ControllerBase, 里面就有 ViewBag 这个

那么这是后台里面的 4个传递数据的属性,我们去前台看看  . 首先我们看看返回值 ActionResult, 发现这是个 抽象类,那么具体的实现是由其他子类来实现的,我们找一个其中的  ViewResult类

打开 ViewResultBase 就能明显的看到,4种传递的方式了,其中 Model对象是由 ViewDate.Model 来传递的.

这样就很直接的看到,后台4种方式和前台的4种方式了,至于这中间是怎么一个赋值的方式,这个要看MVC的源码..这里就不展开了

EF5+MVC4系列(7) 后台SelectListItem传值给前台显示Select下拉框;后台Action接收浏览器传值的4种方式; 后台Action向前台View视图传递数据的四种方式(ViewDate,TempDate,ViewBag,Model (实际是ViewDate.Model传值))的更多相关文章

  1. .NET MVC控制器向视图传递数据的四种方式

    .NET MVC控制器向视图传递数据的四种方式: 1.ViewBag  ViewBag.Mvc="mvc"; 2.ViewData ViewBag["Mvc"] ...

  2. 《手把手教你》系列技巧篇(三十二)-java+ selenium自动化测试-select 下拉框(详解教程)

    1.简介 在实际自动化测试过程中,我们也避免不了会遇到下拉选择的测试,因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助. 2.select 下拉框 2.1Select ...

  3. 解决select下拉框禁用(设置disabled属性),后台获取值为空

    如果下拉框设置disabled属性后,提交表单到后台,后台获取的下拉框的值为空,以下有三种解决获取不到下拉框选项值的方法. 有下拉框html如:<select name="select ...

  4. Django forms表单 select下拉框的传值

    今儿继续做项目,学习了Django的forms生成前端的代码. forms.py class SignupForm(forms.Form): username = forms.CharField(va ...

  5. jquery 根据后台传过来的值动态设置下拉框、单选框选中

    更多内容推荐微信公众号,欢迎关注: jquery  根据后台传过来的值动态设置下拉框.单选框选中 $(function(){ var sex=$("#sex").val(); va ...

  6. Selenium系列(十) - 针对Select下拉框的操作和源码解读

    如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...

  7. MVC小系列(十七)【自定义验证规则给下拉框】

    因为下拉框不支持验证,所以写一个attribute特性,让它继承ValidationAttributemvc的特性验证,很直接,无论是数据安全特性上还是页面表现上都不错,它的运行机制: 前台表单验证规 ...

  8. SpringMVC之ajax+select下拉框交互常用方式

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. 在不同Activity之间传递数据的四种常用方法

    在Android中传递数据的方法非常多,本次介绍4中比较常用的数据传递方法: 1.通过Intent传递数据 2.通过静态变量(static)传递数据 3.通过剪贴板(Clipboard)传递数据 4. ...

随机推荐

  1. Redis 相关操作

    1.安装 下载地址:http://www.redis.cn/ 在使用Redis时,开始就遇到了问题,客户端打不开,原因是需要先开启服务端,这需要先配置—— 1.下载好redis安装包,解压安装之后,复 ...

  2. 【Bayesian】贝叶斯决策方法(Bayesian Decision Method)

    已知某条件概率,如何得到两个事件交换后的概率,也就是在已知P(A|B)的情况下如何求得P(B|A).这里先解释什么是条件概率: 表示事件B已经发生的前提下,事件A发生的概率,叫做事件B发生下事件A的条 ...

  3. 【Python】获取服务器时间

    import http.client import time import os def get_webservertime(host): conn=http.client.HTTPConnectio ...

  4. svn 版本管理与自动部分发布

    作为团队开发项目时,会遇到项目的版本管理,测试部署与发布部署,下面是摘至他人的关于版本管理和自动部署的方案. svn自动部署的实现: 使用svn的hook功能 1.在版本库的hooks目录下面,有一些 ...

  5. DLL封装Interface(接口)(D2007+win764位)

    相关资料: http://blog.csdn.net/liangpei2008/article/details/5394911 结果注意: 1.函数的传参方向必须一至. DLL实例代码: ZJQInt ...

  6. jdbc连接sqlserver报错java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver

    使用2008的数据库, 我已经引入的sqljdbc4的包,单还是报这个错,很奇怪突然想到在配置hibernate的时候,是拷贝下来的代码 然后到网上查了下, 因为是2008的版本驱动和2000的有点不 ...

  7. Windows获取远程Linux局域网内的mysql连接

    求:本地Windows7电脑,通过xshell和xftp能够连接远程Linux服务器,但是数据库不在这台服务器上,在Linux服务器的局域网里面: 需要当前本地Windows7电脑能够连接Linux服 ...

  8. idea中git git pull push需要反复输入密码

    在使用idea开发的过程中,在终端terminal中git pull和git push时遇到一个问题,一个是 每次提交都需要输入用户名和密码,,从网上找了下解决方案,记录一下. 解决: 打开git终端 ...

  9. [Linux实用工具]Ubuntu环境下SSH的安装及使用

    SSH分为客户端和服务端. 服务端是一个守护进程,一般是sshd进程,在后台运行并响应来自客户端的请求.提供了对远程请求的处理,一般包括公共密钥认证.密钥交换.对称密钥加密和非安全连接. 客户端一般是 ...

  10. jsPatch.qq.com呵呵

    jsPach.qq.comhtml, body {overflow-x: initial !important;}html { font-size: 14px; } body { margin: 0p ...