MVC中页面的传值方式总结

网友投稿 305 2022-09-05

MVC中页面的传值方式总结

MVC中的页面传值,通常指Controller和view之间的数据传递,经常用到的有几种方式,总结如下:

一:ViewData

获取或设置一个字典,其中包含在控制器和视图之间传递的数据。使用ViewData是采用键值对的形式,对所定义的数据进行传递。在View中会自动识别到拥有唯一键值的ViewData,并将数据显示出来。

例子:

public ActionResult() { List list = (from d in db.BlogArticles where d.AIsDel == false select d).ToList(); //2将集合数据传给视图 // ViewBag.DataList = list;//viewBag形式 //利用viewdata形式 ViewData["DataList"] = list; return View();}

视图中接收:

@foreach (BlogArticle a in ViewData["DataList"] as List) { }
id 标题 分类 状态 时间 操作
@a.AId @a.ATitle @a.ACate @a.AStatu @a.AUpdatetime @a.AContent

二:ViewBag

获取视图包,允许自定义属性进行赋值,属于动态类型(dynamic),以ViewBag.属性=属性值得方式进行传值,其实这里跟ViewData的使用原理类似

public ActionResult Index(){ ViewBag.Title="Hello!";}

视图中接受:

ViewBag.Title

三:其他方式

还包括一些链接的方式,例如页面跳转的方式RedirectToAction,还有RenderAction等自动接收等方式。

四:View-->Controller

1.通常会选择利用ajax来通过get或者post进行提交。如果采用最原始的JS来做,就要用到之前总结的ajax经典的五步工作法了,但是通常我们采用JQuery封装好的ajax提交方式。

即$.ajax({type,url,data,success:function(){})其中最常用的就是这几个参数属性了。

2.通过Get方式+路由配置+id值进行提交数据

JS:

五、Action---------->Action

前面两种传值方式都是在view和Controller之间进行数据传递,那么如果某一个业务需要用到后台的两个Action,并且需要再这两个 Action之间进行数据传递,这时需要用到另一个概念TempData:获取要传递到视图的临时数据.使用时,需要注意TempData的生命周期,只 在第一次请求Action时临时数据存在,之后自动变为NULL,具体的使用与ViewData相同,属于键值对的数据字典类。

public ActionResult Index() { this.TempData["str"]="wyy"; return View(); } public ActionResult Index2() { string name=this.TempData["str"]; return Content(name); }

以上是在学习和实践MVC过程中经常用到的页面传值的几种方式,大的方向看来从C向V数据传递以ViewData为基础,扩展到ViewBag,更加方便快速了。从V到C传递,则归于ajax中的get和post的提交了。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:CBA市场营销策略有什么现状,有哪些需要解决的问题!
下一篇:抖音小红书入局文旅后,OTA开启内容营销“反击战”!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~