PS:一個Home控制器里兩個Action方法Index和Temp 分別對應兩個視圖;
Index頁面用於顯示單個參數傳值
Temp頁面用於顯示多個參數參數
(項目命名空間:MVC多種傳值方式)
兩個類:
Student : public int stuId { get; set; } public string stuName { get; set; } public int stuAge { get; set; } public char stuSex { get; set; } public string stuEmail { get; set; }
User : public int uId { get; set; } public string uName { get; set; } public string uPwd { get; set; }

后台Index方法(后台傳遞單個參數的幾種方法):
public ActionResult Index() { #region ViewData傳值 //1)、傳遞對象 ViewData["stu"] = new Student() { stuId = 1, stuName = "麻花筒", stuSex = '男', stuAge = 20, stuEmail = "25476342@qq.com" }; //2)、傳遞標量值 ViewData["flag"] = "能服於忍"; #endregion #region ViewBag傳值 //1)、傳遞對象 ViewBag.stu2 = new Student() { stuId = 2, stuName = "張三", stuSex = '男', stuAge = 18, stuEmail = "1472583699@qq.com" }; //2)、傳遞標量值 ViewBag.flag2 = "精忠報國"; #endregion #region TempData傳值 //1)、傳遞對象 TempData.Add("stu3", new Student() { stuId = 3, stuName = "李四", stuSex = '女', stuAge = 20, stuEmail = "1574258632@qq.com" }); //2)、傳遞標量值 TempData["flag3"] = "白晝流星"; //3)、說明:使用Add方法和使用鍵值對作用是一樣的; #endregion #region @model傳值 return View(new Student() { stuId = 4, stuName = "王五", stuSex = '男', stuAge = 16, stuEmail = "145236987@qq.com" }); #endregion }
Index頁面:
@using MVC多種傳值方式.Models; @model Student @{ Layout = null; //ViewData傳值 Student stu = ViewData["stu"] as Student; string flag = ViewData["flag"] as string; //ViewBag傳值 Student stu2 = ViewBag.stu2 as Student; string flag2 = ViewBag.flag2 as string; //TempData傳值(通過鍵值接收) Student stu3 = TempData["stu3"] as Student; string flag3 = TempData["flag3"] as string; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Home-Index</title> </head> <body> @Html.ActionLink("多個對象傳值頁面","/Temp") @{ //ViewData傳值 <p>學號:@stu.stuId</p> <p>姓名:@stu.stuName</p> <p>年齡:@stu.stuAge</p> <p>性別:@stu.stuSex</p> <p>郵箱:@stu.stuEmail</p> <p>標志:@flag</p> } <hr /> @{ //ViewBag傳值 <p>學號:@stu2.stuId</p> <p>姓名:@stu2.stuName</p> <p>年齡:@stu2.stuAge</p> <p>性別:@stu2.stuSex</p> <p>郵箱:@stu2.stuEmail</p> <p>標志:@flag2</p> } <hr /> @{ //TempData傳值 <p>學號:@stu3.stuId</p> <p>姓名:@stu3.stuName</p> <p>年齡:@stu3.stuAge</p> <p>性別:@stu3.stuSex</p> <p>郵箱:@stu3.stuEmail</p> <p>標志:@flag3</p> } <hr /> @{ //model傳值 <p>學號:@Model.stuId</p> <p>姓名:@Model.stuName</p> <p>年齡:@Model.stuAge</p> <p>性別:@Model.stuSex</p> <p>郵箱:@Model.stuEmail</p> <p>標志:無</p> } </body> </html>
后台Temp方法(傳遞多個參數的幾種方法):
public ActionResult Temp() { #region dynamic傳值(匿名類型) dynamic dy = new ExpandoObject(); dy.stu = new Student() { stuId = 5, stuName = "趙六", stuSex = '男', stuAge = 21, stuEmail = "147852369@qq.com" }; dy.stu2 = new Student() { stuId = 6, stuName = "田七", stuSex = '男', stuAge = 12, stuEmail = "125874693@qq.com" }; dy.flag = "天王蓋地虎"; dy.user = new User() { uId = 1, uName = "admin", uPwd = "123" }; ViewData["dy"] = dy; #endregion #region Tuple傳值(元數組) //說明:Tuple最多為八元數組 如果需傳更多最后一個可用Tuple繼續傳 var tuple = new Tuple<Student, Student, string, User, Tuple<Student, User>>( new Student() { stuId = 7, stuName = "阿帕奇", stuSex = '男', stuAge = 25, stuEmail = "1472000@qq.com" }, new Student() { stuId = 8, stuName = "卡卡西", stuSex = '男', stuAge = 15, stuEmail = "22356485@qq.com" }, "寶塔鎮河妖", new User() { uId = 2, uName = "administrator", uPwd = "123456" }, new Tuple<Student, User>( new Student() { stuId = 9, stuName = "帕卡丘", stuSex = '男', stuAge = 10, stuEmail = "11245336@qq.com" }, new User() { uId = 3, uName = "account", uPwd = "147258" })); ViewData["tuple"] = tuple; #endregion //說明:無論是使用dynamic還是Tuple,最后將值傳遞到前台可以使用 //ViewData、ViewBag、TempData、@model //任意一種方式,這里使用的是ViewData return View(); }
Temp頁面:
@using MVC多種傳值方式.Models; @{ Layout = null; dynamic dy = ViewData["dy"] as dynamic; var tuple = ViewData["tuple"] as Tuple<Student, Student, string, User, Tuple<Student, User>>; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Home-Temp</title> </head> <body> @Html.ActionLink("傳遞單個對象頁面","/Index") @{ //dynamic傳值 <p>學號:@dy.stu.stuId</p> <p>姓名:@dy.stu.stuName</p> <p>年齡:@dy.stu.stuAge</p> <p>性別:@dy.stu.stuSex</p> <p>郵箱:@dy.stu.stuEmail</p> <p>學號:@dy.stu2.stuId</p> <p>姓名:@dy.stu2.stuName</p> <p>年齡:@dy.stu2.stuAge</p> <p>性別:@dy.stu2.stuSex</p> <p>郵箱:@dy.stu2.stuEmail</p> <p>標志:@dy.flag</p> <p>用戶id:@dy.user.uId</p> <p>用戶名:@dy.user.uName</p> <p>用戶密碼:@dy.user.uPwd</p> } <hr /> @{ //tuple傳值 <p>學號:@tuple.Item1.stuId</p> <p>姓名:@tuple.Item1.stuName</p> <p>年齡:@tuple.Item1.stuAge</p> <p>性別:@tuple.Item1.stuSex</p> <p>郵箱:@tuple.Item1.stuEmail</p> <p>學號:@tuple.Item2.stuId</p> <p>姓名:@tuple.Item2.stuName</p> <p>年齡:@tuple.Item2.stuAge</p> <p>性別:@tuple.Item2.stuSex</p> <p>郵箱:@tuple.Item2.stuEmail</p> <p>標志:@tuple.Item3</p> <p>用戶id:@tuple.Item4.uId</p> <p>用戶名:@tuple.Item4.uName</p> <p>用戶密碼:@tuple.Item4.uPwd</p> <p>學號:@tuple.Item5.Item1.stuId</p> <p>姓名:@tuple.Item5.Item1.stuName</p> <p>年齡:@tuple.Item5.Item1.stuAge</p> <p>性別:@tuple.Item5.Item1.stuSex</p> <p>郵箱:@tuple.Item5.Item1.stuEmail</p> <p>用戶id:@tuple.Item5.Item2.uId</p> <p>用戶名:@tuple.Item5.Item2.uName</p> <p>用戶密碼:@tuple.Item5.Item2.uPwd</p> } </body> </html>
