MVC控制器向View视图传值的三种方法

首先创建一个MVC的项目,其中需要一个控制器(TestController),三个视图(index,edit,detail)

1、项目结构如下:

 

2、控制器向视图传值的三种方法

1)提供视图模型对象(直接把对象放在View里面)

2)通过VewBag传递数据

3)通过ViewData传递数据

 

3、控制器源码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MVCTest.Controllers
{
    public class TestController : Controller
    {  
        /// <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 = "21";
            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,EveryOne!";
            ViewData["Date"] = DateTime.Now;
            return View();
        }
    }
}


4、视图的调用

1)index视图

2)edit视图

3)detail视图

5、页面的显示效果

1)index页面

2)edit页面

3)detail页面

Ps: 视图向控制器传值,一般是通过ajax请求控制器的方法,请求是将参数带到控制器方法参数里面

posted @ 2016-08-15 14:07  小小邪  阅读(9016)  评论(0编辑  收藏  举报