一:后台使用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. 解决IntelliJ IDEA控制台乱码问题[包含程序运行时的log4j日志以及tomcat日志乱码]

    这里使用的IntelliJ IDEA版本为[IntelliJ IDEA 14.1.4]: 一.控制台打印的程序运行时的log4j日志中包含中文乱码 在IDEA安装目录的bin目录下找到名为" ...

  2. 如何使cmd窗口正确显示utf-8编码的文字

    http://blog.csdn.net/ehcoing/article/details/51865922 ********************************************** ...

  3. ios 让textView被键盘挡住上移

    注册键盘通知 #pragma mark - 键盘通知 - (void)addNoticeForKeyboard { //注册键盘出现的通知 [[NSNotificationCenter default ...

  4. iOS 开发_..和self...的区别以及使用

    相信很多初学者对_和self.之间的区别并没有一个大致的认识,那么下面对两者的区别做一个简单的介绍: 至于重写set和get方法,简要说明一下,当我们使用@property这用法之后,系统便会自动给我 ...

  5. golang后台任务库

    功能需求 本来想用linux自带的corntab,然而corn调试困难,而且不支持以下需求 能分布式 有http接口 能调试 有统计 kala 这个需求也不算小众,于是在网上查了一下,果然有,而且还比 ...

  6. java基础篇---内存分析

    Java的并发采用的是共享内存模型(而非消息传递模型),线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信.多个线程之间是不能直接传递数据交互的,它们之间的交互只能通过共享变 ...

  7. WriteableBitmap/BitmapImage/MemoryStream/byte[]相互转换

    1 WriteableBitmap/BitmapImage/MemoryStream/byte[]相互转换 2012-12-18 17:27:04|  分类: Windows Phone 8|字号 订 ...

  8. HDFS只支持文件append操作, 而依赖HDFS的HBase如何完成增删改查功能

    其实HBase/LevelDB等系统,背后都应用了Log-structured merge tree.HBase的写操作有两个步骤:1) 写入HLog(防止宕机丢失数据), 2) 写入对应的Memst ...

  9. ML-DL-各种资源汇总

    1.Used Libraries, Datasets, and Models 1.1 Libraries TensorFlow (from Google): https://www.tensorflo ...

  10. 枚举Enum和常量0之间的恩怨

    1,任何为0的常量表达式都能隐式的转换成枚举Enum. 对于这一点,在程序中没少吃苦头.特别是对于函数重载的情况,往往让人一头雾水. 看看下面的代码(摘自MSDN),你能猜到输出吗? public e ...