2012-09-12 11 views
12

tôi có như sau:Làm thế nào để gửi gán một danh sách <string> đến một mảng JavaScript hoặc đếm được đối tượng

ViewBag.SomeEnumerable = new List<string>() { "string1", "string2" }; 

Bây giờ làm thế nào để gán ViewBag.SomeEnumerable một array hoặc một số hình thức của đối tượng đếm được ở phía bên JavaScript? ví dụ:

function SomeFunction() 
{ 
    var array = @ViewBag.SomeEnumerable; 
    for(var eachItem in array) 
    { 
    alert(eachItem); // should display "string1" then string2" 
    } 
} 

Trả lời

30
<script type="text/javascript"> 
function SomeFunction() { 
    var array = @Html.Raw(Json.Encode(ViewBag.SomeEnumerable)); 
    for(var i = 0; i < array.length; i++) { 
     alert(array[i]); // should display "string1" then string2" 
    } 
} 
</script> 

sẽ được render thành:

<script type="text/javascript"> 
function SomeFunction() { 
    var array = ["string1","string2"]; 
    for(var i = 0; i < array.length; i++) { 
     alert(array[i]); // should display "string1" then string2" 
    } 
} 
</script> 
+0

VS là cho 'lỗi cú pháp ở; 'khi tôi tuyên bố var array = @ Html.Raw (Json.Encode (ViewBag.SomeEnumerable)); tuy nhiên o/p là đúng trong html được hiển thị trong trình duyệt –

+2

@IshaanPuniani, tại sao bạn thậm chí tin tưởng VS Intellisense? Điều đó là sai. Nhìn vào đánh dấu kết xuất để thấy rằng nó là chính xác mặc dù VS nói với bạn nó là sai. –

Các vấn đề liên quan