日常我们在Action中编码的时候,大家都知道全部的Action重临值类型都以ActionResult,并且我们的再次来到值也是各样奇葩,比如:Json(),Content(),

View()等等。。。当您写那么些代码的时候,你是否有一种公共场合的偷窥欲。。。那那篇大家就一起来看一看。

一:实例代码

 1     public class HomeController : Controller
 2     {
 3         public ActionResult Index()
 4         {
 5             ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
 6 
 7             return View();
 8         }
 9 
10         public ActionResult About()
11         {
12             ViewBag.Message = "Your app description page.";
13 
14             return Json("");
15         }
16 
17         public ActionResult Contact()
18         {
19             ViewBag.Message = "Your contact page.";
20 
21             return Content("");
22         }
23     }
  1. View()

  依然老办法,大家用ILSpy来看望它的源码会是怎么。。。

 json 1json 2

从上面包车型大巴图中,大家大约能够见到,其实我们在Action中做View()的时候,其实个中只有是做了一个new
ViewResult的操作,然后代码继续会从

ViewEngineCollection这一个集合中去找寻自我索要的View,那就有人疑问了,ViewEngineCollection那一个集合怎么填充的,其实本身也不知情。。。

但咱们能够见到,假诺在Collection中能找到View的话,会回来多少个viewEngineResult回去,要是没有找到则经过SearchedLocations将追寻路

径全体打印出来。。。就如上面那样,是还是不是很有意思?

json 3

2.Json()

  
在当下富客户端的大背景下,大约没有先后不Json()吧,大家常见都以把Model塞给Json就行了,到了客户端就已经是Json字符串了,这么些一定

是自然的,下边大家也是后续看看它的源码里面终究怎么玩的。。。 

 json 4json 5

json 6

从地方的代码中能够看到,其实所谓的Json并从未什么样。。。仅仅是response.write(xxxx.serialize(xxxx))而已,
本以为是如何了不起上的事物。。。

其实呢??? 你懂的。。。

 

  1. Content()

 
当您明白了Json()之后,我觉着您应该对Content的规律已经很精通了,因为Json依然须要用javascriptSerializer连串化器来类别化Model,然后才

是真的将体系化后的json送到客户端,你也猜到Content根本就不会这么做,而是一味将string喷到前端即可。。。对不对。。。

json 7

json 8

好了,夜深了。。。就简单解析到那边了,其他的多少个Result都以在Controller类上边包车型大巴,假设你愿意用ILSpy去查看的话,那么全数都不是问

题,比如上边笔者在Controller中三个简单的截图就有三个Result了。。。

json 9

相关文章

网站地图xml地图