• MVC Controller向View传递数据


    ASP.NET MVC中,Controller向View传递数据的方式有一下6种

    • ViewData
    • ViewBag
    • PartialView
    • TempData
    • ViewModel
    • Tuple

    1、ViewData和ViewBag

      ViewData使用键值对Key/Value存储对象,ViewBag通过动态类型dynamic存放对象

      ViewData在View中使用的时候要转换为相应类型,而ViewBag可以作为属性直接使用(但没有智能提示)

      ViewData的存取效率比ViewBag快

      ViewData["key1"] = "value1";
      ViewData["key2"] = 15;

      ViewBag.Key1 = "value1";
      ViewBag.Key2 = 15;

    2、Tuple和ViewModel

      Tuple就是ViewModel,用来存放多个元素的集合(做多可以存放7个元素),然后通过Model传递到View,在View中设置强类型视图,就可以通过@Model来访问

      var tuple = new Tuple<string, string>("value1", "value2");
      return View(tuple);

      在View页面中添加model的定义
      @model Tuple<string, string>

    3、PartialView   

      通过PartialView包装一些重用代码,可以在需要的时候直接调用,也可以用于异步请求时作为html返回

      可以在View中直接调用  @Html.RenderPartial("_PartialView");

      也可以用于异步请求是返回部分html代码

    4、TempData  

      TempData和ViewData一样,也是用键值对Key/Value存储,但数据保存在Session,每一次读取后会删除数据,支持跨Action访问

      如果读取后不想删除,可以调用TempData.Peek("Key")
      如果读取后保存一次,可以调用TempData.Keep("Key")

     

     

      

  • 相关阅读:
    缓慢变化纬的解决方法
    行转列且有序
    异常处理
    继承
    js的隐式转化
    初步了解微任务
    axios中断请求AbortController
    Vue解决V-HTML指令潜在的XSS攻击('v-html' directive can lead to XSS attack vue/no-v-html)
    axios下载后台传过来的流文件并设置下载文件名(如excel)
    axios异步获取文件流数据
  • 原文地址:https://www.cnblogs.com/bomo/p/3536749.html
Copyright © 2020-2023  润新知