2012-02-22 48 views
0

我得到了一個模型,我想要的是通過單擊一個按鈕來運行一個JavaScript函數,它將該模型轉換爲數組並將其發送到控制器,該控制器將讀取和解析數據爲json或就像一個模型一樣。將模型轉換爲數組mvc 3

例如:

[查看]:

@model MyApp.MyModel 

<input type="button" value="Send" onclick="SendData()" /> 

function SendData() 
{ 
    var data = "@Model" // this is where im stuck maybe $.makeArray("@Model") ? 
    $.ajax({ 
      url: 'getData', 
      type: 'POST', 
      data: $.toJSON(data), 
      datatype: "json", 
      contentType: "application/json; charset=utf-8", 
      success: function (result) { 
       alert(result); 
      } 
     }); 
} 

回答

3

Json.Encode Method可以幫助你

數據對象轉換爲字符串,它是在JavaScript對象符號(JSON)格式。

而且你的代碼

+0

將它的工作

例JSON數據在模型上如果IEnumerable?因爲Encode把一個對象當作一個列表,或者我錯了? exp:@model IEnumerable 2012-02-22 09:10:38

+1

c#中的任何類都是從object派生的。所以它也應該在IEnumerable上工作。你爲什麼不嘗試自己看? :) – archil 2012-02-22 09:28:57

0

只是想通過@archil添加到答案。

這可能是最好使用@ Html.Raw(Json.Encode(型號)),根據您的要求,而不是僅僅Json.Encode(模型)因爲JSON對象將被正確編碼。使用@ Html.Raw(Json.Encode(型號))

[{"id":1,"name":"Joe"}] 

實施例JSON數據使用Json.Encode(型號)

[{&quot;id&quot;:1,&quot;name&quot;:&quot;Joe&quot;}]