首先創建一個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請求控制器的方法,請求是將參數帶到控制器方法參數里面