• MVC中控制器向视图传值的四种方式


    MVC中的控制器向视图传值有四种方式分别是

    1 ViewDate  2.ViewBag   3.TempDate  4.Model

    下面分别介绍四种传值方式

    首先先显示出控制器中的代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    
    namespace WebApplication1.Controllers
    {
        public class DefaultController : Controller
        {
            // GET: Default
            /// <summary>
            /// 1、提供视图模型对象
            /// </summary>
            /// <returns></returns>
            public ActionResult Index()
            {
                DateTime date = DateTime.Now;//一个对象作为View方法的参数传递给视图
                return View(date);
            }
            /// <summary>
            /// 2、使用ViewBag(视图包)传递数据
            /// </summary>
            /// <returns></returns>
            public ActionResult Edit()
            {
                //ViewBag 允许在一个动态的对象上定义任意属性,并在视图中访问它.这个动态的对象可以通过Controller.ViewBag属性访问它.
                ViewBag.Name = "名字代号";
                ViewBag.Age = "22";
                ViewBag.Hobby = "打篮球,打羽毛球等";
                ViewBag.StrDate = DateTime.Now;
                return View();
            }
            /// <summary>
            /// 3、 使用View Data传递数据
            /// </summary>
            /// <returns></returns>
            public ActionResult Detail()
            {
                //在MVC3.0之前,主要是通过这种方式传递数据,它是通过用 ViewDataDictionary类实现的,而不是动态的对象.
                //ViewDataDictionary类是类似标准"键/值"集合,并通过Controller类的ViewData属性进行访问的.这个方法,在视图中需要对对象进行转换.
                ViewData["Message"] = "Hello,World    !";
                ViewData["Date"] = DateTime.Now;
                return View();
            }
        //使用TempDate来传递数据
            public ActionResult tempdates()
            {
                //TempData 他和viewdate的用法差不多但是他比viewdate的好处是他可以做到夸不同页面之间的传值
                TempData["Message"] = "名字信息";
                TempData["Age"] = "55";
                TempData["Hobby"] = "打篮球,打羽毛球等";
               TempData["Timess"] = DateTime.Now;
                return View();
            }
        }
    }    

    这个是第一个控制器中的方法传递的数据

     <div> 
           
            @{ 
                ViewBag.Title = "Index";
            }
            <h1>当前时间</h1>
            <h2>@(((DateTime)Model).Date)</h2>
            <h2>@(((DateTime)Model).DayOfYear)</h2><br />
        </div>

    resault:

    当前时间

    2019/4/2 0:00:00

    92

    1.使用ViewBag

     <div>
            @{ ViewBag.Title = "Edit"}
            <h1>@ViewBag.Name</h1>
            <h2>@ViewBag.Name</h2>
            <h2>@ViewBag.Age</h2>
            <h2>@ViewBag.Hobby</h2>
            <h2>@ViewBag.StrDate</h2>
        </div>

    resault:

    名字代号
    22
    打篮球,打羽毛球等

    2019/4/2 15:59:26

    2.View Data的用法

     <div>
            @{
                ViewBag.Title = "Detail";
            }
            <h2>@ViewData["Date"]</h2>
            <h2>@ViewData["Message"]</h2>
            <h2>@view</h2>
        </div>

    resault:

    hello  World

    2019/4/2 15:59:26

    3.TempData的用法

     <div>
            @{ ViewBag.Ttle = "tempdates";}
    
            <h1>@TempData["Message"]</h1>
            <h1>@TempData["Age"] = </h1>
            <h1>@TempData["Hobby"] </h1>
            <h1>@TempData["Timess"]</h1>
           
    
        </div>

    resault:

    名字代号
    22
    打篮球,打羽毛球等

    2019/4/2 15:59:26

    4,model的用法如果有想知道的可以联系我.

  • 相关阅读:
    中国大概可用NTPserver地址
    ROOT android 原则。 基于(zergRush)
    Struts2他们拦截器实例定义—登陆权限验证
    引用与指针
    address_space 从哪里来
    C++ 可以多个函数声明
    linux下远程管理利器-tmux
    内核空间和用户空间的分界 PAGE_OFFSET
    io端口
    C中程序的内存分配
  • 原文地址:https://www.cnblogs.com/zsznh/p/10643210.html
Copyright © 2020-2023  润新知