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的生存期。

  • 相关阅读:
    [eslintpluginvue] [vue/nounusedvars] 'scope' is defined but never used.
    Vue项目中添加锁屏功能
    前端文档汇总(含代码规范、开发流程、知识分享,持续更新)
    vscode格式化Vue出现的问题
    下盘不稳 被忽视的项目风险
    项目沟通中的一点经验心得
    如何才能更合理地分配项目奖金?
    关于企业的薪酬体系之思考
    导致项目失败的两大隐形杀手
    如何让项目总结会议更有效果?
  • 原文地址:https://www.cnblogs.com/robinblogs/p/3789526.html
Copyright © 2011-2022 走看看