目前所知的传资料到前端的方式主要有两种,
一种是ViewBag或ViewData,
另外一种是用Model,
今天要分享的是ViewBag的部分,
这一篇 有稍微介绍一下,可以参考,
刚开始用MVC的时候,
上网查好像说ViewData有一些缺点,
(其实我忘了是什么缺点了)
还是用ViewBag比较好,
所以现在习惯都使用ViewBag,
基本上ViewBag跟ViewData感觉都是一次性传递,
当你从后端传到前端之后,
当网页载完之后值就会自动消失,
或甚至没有传到前端,
如果有Response.Redirect也会自动消失,
ViewBag可以传递任何东西,
包括C#原本的变数型态(int, string等等),
甚至Model或List都可以传递,
只要在后端输入
ViewBag.Error = "这是错误讯息";DateTime date = DateTime.Now;ViewBag.Date = date;
前端的用法几乎和后端一样,
不过如果要载入后端的资料记得加一个@,
这是Razor的语法(我是看成C#在用,没什么差别)
载入的方法有两种,可以直接在前端使用,
<div>@ViewBag.Error</div>
也可以先承接变数之后再使用
@{ var error = ViewBag.Error; var date = ViewBag.Date;}...<div>@error</div><div>@date.ToString("yyyy/MM/dd HH:mm:ss")</div>
有没有感觉跟C#很像?