Controller向View传输数据

来源:互联网 发布:销售数据分析方法视频 编辑:程序博客网 时间:2024/05/27 09:45

ASP .NET-MVC Controller向View传输数据

       常常使用ViewDate从Controller向View传数据,由于有新的需求,特对这个问题做一些查询和了解。发现就这个问题,内容还挺丰富:

       向View传输数据可以传输载体ViewData、ViewBag、TempData、Model。

数据传输实现载体Controller中的代码View中接收数据的代码ViewData

Public ActionResult Index(){  ViewData[“Message”] = “Hello word!”;  return View(); }
<% = Html.Encode(ViewData[“Message”]) %>
ViewBag
Public ActionResult Index(){  ViewBag.Message = “This is a test!”;  return View(); }
@model 命名空间.Models.实体名称@ViewBag.Message
Model
public ActionResult Index(){ Product p = new Product(); p.Name = "Toy"; return View(p);}
Product : <%:((Product)Model).Name %>


        tempData用于在Redirect的时候保存数据,ViewData、ViewBag在跳转后就会变成null,但是TempData不会。

TempData传输数据载体数据传出Controller数据传入另一个ControllerTempData
public ActionResult Index(){  var model = new Review()            {                Body = "Start",                Rating=5            };    TempData["ModelName"] = model;    return RedirectToAction("About");}
public ActionResult About(){    var model= TempData["ModelName"];    return View(model);}
JSON方式传输
        Controller添加引用using System.Web.Script.Serialization;
 
        本方法:Controller查询数据,向View传输数据
public JsonResult Func(){List<T> listInfo = QueryInfo();var data = new{    total,    rows = courseList};//返回到前台View的信息return Json(data, JsonRequestBehavior.AllowGet);}

将List<T>数据转化成字符流——String,向View传输
        Controller添加引用using System.Web.Script.Serialization;
        传输List<T>集合数据,需要对数据进行序列化:(下面将序列化过程进行封装)

public string GetJson(Object DirectionInfo){    System.Web.Script.Serialization.JavaScriptSerializer jsS = new System.Web.Script.Serialization.JavaScriptSerializer();    string json = jsS.Serialize(DirectionInfo);    return json;}
查询后台数据,调用序列化方法,并最终返回字符串序列给View
public string QueryInfo(){    var resultInfo =QueryInfo();    return GetJson(resultInfo);}


0 0
原创粉丝点击