【MVC】action向view传值

来源:互联网 发布:mac. wps 编辑:程序博客网 时间:2024/04/28 14:29

WHAT?

           这篇博客讲的是什么?干货!!不多说了,亲爱的你,往下看吧~希望能给你带来一些收获

    上一篇博客讲到了如何把view上的数据传递给action---请点击文章【MVC】 action方法接收浏览器参数方式,那么后台的数据怎么传回去呢?下面小编来给你分享一下关于传递数据的那些事~~


         

HOW?

       有4种方式来传参,其实在我眼里,只有一种方法。请看下方demo


1、ViewBag

    controller里面的代码:

    

public class ElsaTestController : Controller    {        //        // GET: /ElsaTest/        public ActionResult Index()        {            //1、使用viewBag,动态数据类型            ViewBag.name = "Elsa's viewbag";            return View();        }    }

    在html里面如何获取?

 

@{    ViewBag.Title = "Index";}<h2>Elsa'test</h2><br> @ViewBag.name

              效果:

            


         好了,这篇博客就介绍到这里,下次再见。。

   好吧,其实其他3种方式都一样,可是他们之间有一些微妙的关系,还是让我来为大家揭晓答案吧~


2、ViewData

   controller代码:

   

public ActionResult Index()        {            //1、使用viewBag,动态数据类型            //ViewBag.name = "Elsa's viewbag";            //2、使用viewDate这种键值对的方式            ViewData["name"] = "Elsa'test viewdata!";            return View();        }
    view:

    

<h2>Elsa'test</h2>@*<br> @ViewBag.name*@@ViewData["name"]

     效果:

     

     效果肯定是谁有问题的,不看是谁写的啊。。哈哈哈哈。。。


    ViewBag & ViewData的关系???好奇吗?

    其实viewbag和viewdata可以共享数据的,但是他们依然是两种不同的属性。

    比如:


    controller:

    

public ActionResult Index()        {            //1、使用viewBag,动态数据类型            ViewBag.name = "Elsa's viewbag";            //2、使用viewDate这种键值对的方式            ViewData["test"] = "Elsa'test viewdata!";            return View();        }
     View:

 

<h2>Elsa'test</h2>@ViewData["name"]

     效果:

     

     看到没有?认真的你肯定发现了,我在html里面调用的是viewdata["name"];而name是在controller里面的viewbag中声明的,所以,他们可以相互共享数据~~


3、TempData

    

    controller:

    

 //3、使用tempData      TempData ["temp"]="Elsa's tempdata";

     view:

    

@TempData["temp"]

4、model

    controller:

    

//4、使用model            Models.test modeltest = new Models.test() { Name = "haha" };            return View(modeltest);

    view:

 

@Model.Name

     其实,model是余数viewdata的属性的,相当于写viewdata.model.Name;


小结:


     好了,action向view传参的4个方式就介绍到这里,最后再告诉大家一个小知识~action方法输出的返回值主要有3种:string、viewresult、jsonresult。次要的还有很多,希望我们共同进步!

0 0
原创粉丝点击