.net MVC中后台傳前台的多種傳值方式


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

        }
View Code

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>
View Code

后台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();
        }
View Code

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>
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM