【MVC】传值大全参考
来源:互联网 发布:网络电话拨号软件 编辑:程序博客网 时间:2024/06/09 17:14
- 写在前面的
- 传参方式
- Controller与View之间
- ViewBag
- ViewData
- JS
- Ajax
- URL
- Action与Action之间Controller内部
- Controller与View之间
- 总结
写在前面的
传值的问题在MVC中也算是一个比较丰富的机制,我们可以借助各种方式和工具组件在Controller和View中来回传递参数。常用的有这么几种方式,Controller<—->View;Action<—->Action;以及Controller<—->Controller
传参方式
Controller与View之间
ViewBag
- ViewBag比较灵活,可以自定义属性,和ViewData类似。但是ViewBag的好处就是可以通过HtmlHelper的TextBox来自动实现数据绑定。
//在控制器中 ViewBag.mvcname= "myfirstframe"; ViewBag.mvcads= "fast";
//在页面中 <div> @Html.TextBox("mvcname") @ViewBag.mvcads </div>
同样,viewBag还可以用来拼页面,这样,我们就可以把所有的页面写在Controller里面,简化View的页面代码,如图:
在页面中直接使用拼接好的页面即可:
ViewData
- 和ViewBag的用法相差不是很多,ViewData的形式采用Key-Value来进行识别并显示Value值。
//在controller中 String mvc ="what an ammazing frame is!" ViewData["stringMvc"]=mvc;
//在页面中 <div> <font>How do you like MVC?</font> </div> <div> <font>@ViewData["stringMvc"]</font> </div>
JS
- 通过JS传值的方法就比较多了,我们最常用的是AJAX,其次还有通过ulr来传值
Ajax
- 使用AJAX传值的话是一种比较方便的方式,主要是运用了JQ中封装好的一些传值方法,来参与View与Controller之间的相互传值。
//页面中的方法/*ajax有一套自己的固定写法,如下所示,只要按照固定的格式,就可以实现前后台相互传值*/ $(document).ready(function () { $.ajax({ //指定Url,格式“Controller名字/Action方法名” url: 'SubmitSuccess/GetAnnounce', //传值方式,post/get type: 'get', //指定返回值类型 dataType: 'json', //返回值data如果不是空值,也就是返回成功,那么执行function中的代码 success: function (data) { for (var i = 0; i < data.length; i++) { $(".content" + i).html(data[i].announceContent); } executeQueryName(); } });
//在SubmitSusseccController中是这样的形式 public ActionResult GetAnnounce() { List<t_announce> data = new List<t_announce>(); SubmitSuccessBLL getallannounce = new SubmitSuccessBLL(); data = getallannounce.GetAnnounce(); return Json(data, JsonRequestBehavior.AllowGet); }
URL
- 再有就是通过地址栏中的url进行传值了,网上有好多已经封装好的JS代码,这里就不再展示了,我用一个简单的例子来展示一下简单的获取原理。
//rul传值可以灵活运用,可以在View与Controller之间,也可以是view与view之间 //我们要做的就是把地址栏的rul改变,然后再获取并修改 //html片段 <body> <div id="mvcurl">MVC URL GET</div> <body> //如何将div的innerHtml获取 <script type="text/javascript"> function geturl(){ var prop = document.getElementById("mvcurl"); //获取内容 var propdoc= prop.innerHTML; //将地址栏rul添加参数 var url = "mvcurl" + "?" + "content" + propdoc; window.location.assign(url); } </script>
在执行完上面的方法之后,地址栏的链接会变成:
我们在另一个页面或者后台怎么获取这个innerHTML呢?
<script type="text/javascript"> var url = location.href; //将链接地址以"?"划分成为两部分,获取第二部分 var url2 = url.split("?")[1]; //将链接的第二部分再以“=”划分,取第二部分 var url3= url2.split("=")[1]; //这个时候我们就获取到了“MVC URL GET”的内容 var content = url3; </script>
Action与Action之间(Controller内部)
- 如果需要在Controller内部传值的话,就需要用到TempData,和ViewData一样,只不过ViewData做不到不同Action之间的传值罢了。
public ActionResult Indexa(){ TempData["mvc"]="mvc oh yellllllllll"; return View(); } public ActionResult Indexb(){ String mvc = TempData["name"].toString; return View(); }
总结
还有一种controller与controller之间传值的方法,由于不常用,暂时在这里就不做说明了,总之掌握以上常用的方法,会很方便的我们对页面的调用和传值。
阅读全文
0 0
- 【MVC】传值大全参考
- MVC中HtmlHelper用法大全参考
- MVC中HtmlHelper用法大全参考
- MVC参考
- 参考大全
- MVC架构的参考
- MVC-构建脚本参考
- spring-mvc.xml参考
- Spring MVC 参考文档
- ASP语法大全 参考
- 网络故障排除参考大全
- javascript技巧参考大全
- Javascript参考大全
- Javascript参考大全
- 《Java参考大全》之一
- C++资源参考大全
- Javascript 事件大全参考
- JS参考大全读书笔记
- 安卓实训笔记第二天
- 七、基础教程-坐标轴(Axis)
- Js中JSON对象
- quartus || 怎样调用PLL 核
- 8月8日训练笔记
- 【MVC】传值大全参考
- Configuration--mappers(三-8)
- DBUtils学习之——使用ResultSetHandler接口的各个实现类实现数据库的增删改查
- TextView、EditText字体大小调节
- [编程题] 二维数组打印
- 时间和日期
- HTML、CSS知识汇总
- 2017 Multi-University Training Contest
- QT插件+ROS 1 安装配置