iT邦幫忙

0

ASP.NET MVC後端傳資料到前端(一)-ViewBag

目前所知的傳資料到前端的方式主要有兩種,
一種是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#很像?


1 則留言

0
fillano
iT邦超人 1 級 ‧ 2017-09-25 15:28:38

@是Razor樣板引擎的跳脫符號,跟WebForm引擎的<% %>是差不多的意思。

我要留言

立即登入留言