zoukankan      html  css  js  c++  java
  • mvc中的几个数据传递

    1、ViewData对象

        ViewBagData是一种字典集合数据同时属于视图基类和控制器基类的属性。

        实例:

        //控制器

    public class HomeController:Controller
    {
            public ActionResult Index()
            {
                 ViewData["data"]="Hello asp.net";
                 return View();
            }
    }       

        视图:

    <h1><%=ViewData["data"]%></h1>

    2、动态对象ViewBag

     ViewBag是dynamic类型的对象,同事属于视图基类和控制器基类的属性。用法如下:

       //控制器代码

    public class HomeController:Controller
    {
            public ActionResult Index()
            {
                 ViewBag.data="Hello asp.net";
                 return View();
            }
    }            

      <!--视图-->

    <h1><%=ViewBag.data%></h1>

    本质上,ViewBag是对ViewData数据的包装,,也就是使用ViewData保存数据,可以使用ViewBag读取,使用ViewBag保存的数据,也可以使用ViewData读取,例如

    ViewData["data"]的数据,使用ViewBag.data也可以访问。

    注意:同一个项目中,一般ViewData和ViewBag只是用一种,不要代码中同同时出现ViewData和ViewBag.

    3、跨请求数据传递——TempData   

        TempData也属于字典类型在编码上于ViewData类似,但是他是完全独立的对对象,它保存的数据域Viewdata互不干扰

      用法如下:

         //控制器

    public class HomeController:Controller
    {
            public ActionResult Index()
            {
                 TempData["data"]="Hello asp.net";
                 return View();
            }
    }        

       //视图

    <h1><%=TempData["data"]%></h1>

       在开发中TempData主要是跨请求传递数据

    public class HomeController:Controller
    {
            public ActionResult Index()
            {
                 TempData["data"]="来自Index()的数据";
                 Response.Redirect("~/Home/Detail");
                 return View();
            }
            public ActionResult  Detail()
           {
                 return View();
           }
    }     

         //Detail.aspx视图

    <h1><%=TempData["data"]%></h1>

        在asp.net mvc系统中,TempData的保存机制实际上是可扩展的,它默认的保存机制是session。虽然TempData的保存机制是session,对于前一次的请求使用Temp

        使用的Temp保存的数据,但是如何Temp中的数据被使用过(从视图中输出)接下来的请求将获取不到数据,再一次请求中,如何TempData数据被使用过,就会被清除

        如果没有被使用过,那么他保存的时间是Session的生存期。

  • 相关阅读:
    一个利用扩展方法的实例:AttachDataExtensions
    正则表达式语法
    正则表达式30分钟入门教程
    js正则验证两位小数 验证数字最简单正则表达式大全
    SQL Server DBA三十问【转】
    Vue(踩坑)vue.esm.js?efeb:628 [Vue warn]: Error in render: "TypeError: Cannot read property 'length' of undefined" found in
    vue(有必要做的项目优化)
    vue_(根据多种条件过滤评论内容)
    vue(ref父组件使用子组件中定义的方法)
    Vuex(实现加减操作,Vue.set解决自定义属性没有双向数据绑定)
  • 原文地址:https://www.cnblogs.com/robinblogs/p/3789526.html
Copyright © 2011-2022 走看看