zoukankan      html  css  js  c++  java
  • 控制器到视图的传值方式

    一。从控制器到视图的传值方式

    (1)Viewdata

    C:Viewdata["key"]="viewdata"//控制器中赋值        V:Viewdata["key"]//视图中取值

    (2)Viewbag

    C:Viewbag.key="viewbag"//控制器中赋值   V:viewbag.key//视图中取值

    (3)TempData        TempData实际上保存在Session中,控制器每次执行请求时都会从Session中获取TempData数据并删除该Session。TempData数据只能在控制器中传递一次,其中的每个元素也只能被访问一次,访问之后会被自动删除。

    C:Tempdata["key"]="tempdata"//控制器中赋值  V:Tempdata["key"]//视图中取值

    (4)Model :必须要有一个对象的实体类

    ViewData.Model=查询出的对象 V:通过强类型页面  形式为:@model   从控制器中传来的具体类型(单个对象或者集合)
    viewdata与viewbag区别:
    (1)对于普通类型 传值方式一样
    (2)对于强类型(对象)viewdata需要强制转换     
        第一种方式: 某对象 s=(命名空间+某对象)(viewdata["对象变量"])   
     
        第二种方式:  某对象 s=  viewdata["对象变量"] as  命名空间+某对象)   
     
    Viewdata与Tempdata的区别:
    (1)viewdata 传值时不能跨方法,否则值会丢失,只能是在本方法到本视图 , ViewData只能在一个Action方法中进行设置,在相关的视图页面读取,只对当前视图有效。
     (2)tempdata 可以跨方法取值不会丢失,TempData应该可以在一个Action中设置,多个页面读取。但是,实际上TempData中的元素被访问一次以后就会被删除。
     
    强类型传值:通过对象传值(Model):必须要有一个对象的实体类
    C中:返回一个对象(变量),return View(对象变量p);//p可能是单个对象也有可能是一个集合PL
    V中:需要一个接受从C中传来的,与之对应的对象变量(一般为model)【可能是单个对象也有可能是集合】
     
    例如:对于单个对象p:@model  mvc传值.Models.Student   此时model是 Student类型的一个对象  使用model就可以访问Student类
        是对于传过来的是一集合PL:   @model  List<mvc传值.Models.Student>
     
  • 相关阅读:
    MySQL "show users"
    MySQL
    A MySQL 'create table' syntax example
    MySQL backup
    MySQL show status
    Tomcat, pathinfo, and servlets
    Servlet forward example
    Servlet redirect example
    Java servlet example
    How to forward from one JSP to another JSP
  • 原文地址:https://www.cnblogs.com/wfaceboss/p/6664393.html
Copyright © 2011-2022 走看看