2010-04-08 148 views
5

我想通過如何將JSON對象傳遞給MVC操作參數?

{"id":1, "name":"stackoverflow", "parameter2":false, "parameter3":true} 

爲了我的行動

public JsonResult Action(int id, string name, bool parameter2, bool parameter3) 
{ 
    //... 
} 

使用JQueries使用JSON作爲數據參數AJAX方法

$.ajax({ 
    url: "target.aspx", 
    data: {"id":1, "name":"stackoverflow", "parameter2":false, "parameter3":true}, 
    success: handleResponse 
}); 

我可以在提琴手我的JSON對象看正在發送,但他們沒有被綁定到我的動作參數。我如何讓他們綁定到參數?

我不想綁定到包含我的值的操作上的對象,即我不想要操作(MyCustomObjectToAcceptParameters json)我希望每個JSON屬性綁定到操作的每個參數。

如果我將參數作爲查詢字符串傳遞,但一切正常,但JSON比查詢字符串值更容易構建/維護,因此我希望將某些內容帶入我的json並將其綁定到我的操作的每個參數。我不需要將複雜類型與數據成員綁定,只需簡單的字符串,整數和布爾值。

+0

您可以發佈您當前的jQuery調用代碼? – tzaman 2010-04-08 21:55:44

+0

您是否嘗試過沒有變量名稱上的引號?請參閱@ Ryan的回答。這應該做你想做的(如果我理解正確的話) – SlackerCoder 2010-04-09 14:14:00

回答

2

我看到@womp去除根據我的反饋意見,以便他在這裏的答案是解決方案。你可以通過一個JSON對象作爲數據參數。例子見here

$.ajax({ 
    url: "target.aspx", 
    data: {parameter1: true, parameter2: false, parameter3: true}, 
    success: handleResponse 
}); 
+0

如果這是你做了什麼,你可以使用Firebug,以確認該參數實際上是在請求?或者你可以在你的控制器中設置一個斷點並檢查HttpContext。 – Ryan 2010-04-09 03:19:57

+0

這是我如何通過我的參數,但我怎麼讓他們綁定到我的行動的參數(不動作參數的對象); – TimTam 2010-04-09 12:24:44

+1

您是否使用默認模型聯編程序?這應該只是工作。 – Ryan 2010-04-09 15:00:51

0

粘合劑/過濾器非常好。有關映射JSON名稱<更精細的控制 - >業務類屬性,使用[數據成員]上性能[DataContract]上類屬性,和。見DataContractJsonSerializer

+0

這看起來像綁定對象的屬性。我想綁定到動作的參數(所以我不需要創建另一個對象) – TimTam 2010-04-09 12:26:58

相關問題