[MVC]通過ViewData傳遞列表給JavaScript陣列
最近的專案需要一個新增計劃表功能:使用者新增一條條計劃,儲存到javascript陣列,生成TABLE,最終傳值給controller。這樣子,在使用者編輯或Postback的時候需要從controller傳值給View。首先,想到的是使用ViewData儲存IList,然後到View遍歷賦值給javascript的array。但是在Javascript中使用一大串的,編譯器不是提示缺“)”就是缺";"...(表笑我-_-|||)
嗯。到網上搜尋下,找了一篇類似問題的帖子。
How to iterate through objects in ViewData via javascript. on the page/view?
在帖子的回覆中提供了2種思路,一是直接View中foreach ViewData儲存的List生成陣列。對這種方法感興趣的朋友可以自己看一下,我還是覺得對View不友好。另一種是使用儲存JSON到ViewData,使對javascript來說莫名其妙的容器變為熟悉無比的JSON。這裡主要講第二種。
首先是我們需要將列表轉為JSON。帖子也提到了ScottGu大牛的一篇文章:Tip/Trick: Building a ToJSON() Extension Method using .NET 3.5。在文章中定義了2個轉換OBject為JSON的擴充套件方法。
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--> public static string ToJSON(this object obj)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Serialize(obj);
}
public static string ToJSON(object obj, int recursionDepth)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.RecursionLimit = recursionDepth;
return serializer.Serialize(obj);
}
使用起來也很簡單: ViewData["Schedules"] = ScheduleList.ToJSON();
通過JavaScriptSerializer將物件轉換為JSON,我們就能很容易的在Javascript中處理。比如用Jquery:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--> var data=new Array();
$(document).ready(function(){
var content=ViewData["Schedules"]==null?0:ViewData["Schedules"] %>;
if(content!=0)
{
$.each(content, function(i, item) {
data.push(new Array(item["ItemA"],item["ItemB"],item["ItemC"]));
});
}
});
作者:蒼苔
出處:http://www.cnblogs.com/WindWing/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-618122/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 將php陣列資料傳遞給javascript使用PHP陣列JavaScript
- 給vue元件傳遞物件或是陣列Vue元件物件陣列
- go 陣列傳遞給函式三種方式Go陣列函式
- php url傳遞陣列PHP陣列
- jdbctemplate呼叫儲存過程傳遞陣列引數JDBC儲存過程陣列
- 給SQL Server儲存過程,傳送陣列引數的變通辦法SQLServer儲存過程陣列
- Java 從陣列來看值傳遞和引用傳遞Java陣列
- 在遠端和本地儲存過程間傳遞陣列儲存過程陣列
- Ajax傳遞陣列 (PHP後臺接收)陣列PHP
- 傳遞自動化字串陣列 (轉)字串陣列
- 給SQL Server傳送陣列引數的變通辦法(轉)SQLServer陣列
- 在遠端和本地儲存過程間傳遞陣列[zt]儲存過程陣列
- c++ -- 二維陣列引數傳遞C++陣列
- Shell自學二(引數傳遞和陣列)陣列
- kettle通過命令列引數傳遞資料庫連線資訊命令列資料庫
- Android 通過 Intent 傳遞類物件AndroidIntent物件
- jquery ajax post 傳遞陣列 ,多checkbox 取值jQuery陣列
- 給初學者:JavaScript 中陣列操作注意點JavaScript陣列
- silverlight 通過除錯頁面傳遞引數給page頁面除錯
- javascript如何給事件處理函式傳遞引數JavaScript事件函式
- javascript和php使用ajax通訊傳遞JSONJavaScriptPHPJSON
- JavaScript的值傳遞和引用傳遞JavaScript
- filter在JavaScript中過濾陣列元素FilterJavaScript陣列
- 通過javascript+xmlhttp獲取itpub blog列表JavaScriptXMLHTTP
- JavaScript 陣列JavaScript陣列
- 通過行為引數化傳遞程式碼
- 泛型陣列列表ArrayList泛型陣列
- Javascript - 陣列和陣列的方法JavaScript陣列
- C++動態建立二維陣列,二維陣列指標,以及動態二維陣列函式傳遞C++陣列指標函式
- JavaScript 是如何工作的:JavaScript 的共享傳遞和按值傳遞JavaScript
- Asp.net MVC中ViewData與ViewBag的使用方法ASP.NETMVCView
- JavaScript 陣列slice()JavaScript陣列
- JavaScript 陣列indexOf()JavaScript陣列Index
- JavaScript 陣列values()JavaScript陣列
- JavaScript 陣列fill()JavaScript陣列
- JavaScript 陣列 slice()JavaScript陣列
- JavaScript 陣列 fill()JavaScript陣列
- JavaScript 陣列 lastIndexOf()JavaScript陣列ASTIndex