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

时间:2021-09-17 20:43:53

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的用法如果有想知道的可以联系我.