Controller向View传输数据

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数据传入另一个Controller
TempData
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
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值