2013-07-02 25 views
1

下面是在ViewData中返回數組的控制器操作。MVC2:在ViewData中傳遞字符串數組,無法在Javascript中使用

ViewData["arrayTotalCertificateCount"] = arrayTotalCertificateCount; 
     ViewData["_CertificateCategory"] = _CertificateCategory; 
     ViewData["arrayCodeSeries"] = arrayCodeSeries; 
     ViewData["arrayCodeCounts"] = arrayCodeCounts; 

     return PartialView(); 

現在,在View中,javascript,我無法訪問它們。

以下是我在View Javascript中編寫的代碼。

var arrayTotalCertificateCount = new Array(); 
    var i =0; 

    for(var item in <%= ViewData["arrayTotalCertificateCount"]%>) 
    {  
     arrayTotalCertificateCount[i] = item; 
     i=i+1; 
    } 

它拋出錯誤,如 -

for(var item in System.String[]) 
Uncaught SyntaxError: Unexpected token ] 

任何人都可以請幫我這個ViewData的數組轉換在javascript數組變量?

回答

1

試試這個

<% var serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); %> 
var arrayTotalCertificateCount = <%= serializer.Serialize(ViewData["arrayTotalCertificateCount"]) %>; 
for(var item in arrayTotalCertificateCount) 
{  
    arrayTotalCertificateCount[i] = item; 
    i=i+1; 
} 
+0

Satpal,非常感謝你的快速回復。我試過你的解決方案,我擺脫了那個錯誤信息。但現在我越來越低於錯誤。我認爲這是因爲有數字的空間。我不確定。 var arrayTotalCertificateCount =「[」5「,」5「,」1「]」 未捕獲的語法錯誤:意外的數字 任何想法,我可以使用item.Trim()? –

+0

謝謝..現在它工作正常.. :) –

+0

沙特阿拉伯,還有一個關於這個問題。我從控制器獲取CodeSeries爲'70 -158,70-169,70-181',當我使用var arrayCodeSeries =「<%= serializer.Serialize(ViewData [」arrayCodeSeries「])%>」序列化它時。我得到如下錯誤消息 - var arrayCodeSeries =「[」\ u002770-158,70-169,70-181 \ u0027「,」\ u002770-158,70-177,70-181 \ u0027「,」\ u002770- 680 \ u0027" ,NULL,NULL]「; 未捕獲的SyntaxError:意外的令牌非法---------請你指導我這個嗎? –

相關問題