2009-02-20 53 views
5

當我的JavaScript代碼使用AJAX調用ASP.NET MVC方法時,它傳遞JSON值。例如:ASP.NET MVC自動解碼來自AJAX的JSON編碼參數

var request = new XMLHttpRequest(); 
request.open("GET", "http://www.awesome.com/DoSomething?param1=%22some%20string%22&param2=1234", true); // parameter string created with JSON.stringify 

var request = new XMLHttpRequest(); 
request.open("POST", "http://www.awesome.com/DoSomething", true); 
// set some headers 
request.send("param1=%22some%20string%22&param2=1234"); // parameter string created with JSON.stringify 

在ASP.NET MVC的一面,我有我的方法來處理呼叫:

public void DoSomething(string param1, string param2) { 

什麼很爛的參數1被包圍報價標記:

"some string" 

什麼吸更多的是參數2是字符串

1234 

當我真正想要的值作爲一個整數。所以,我必須做的第一件事是使用DataContractJsonSerializer來解碼這些小狗,所以我的字符串沒有引號,我的第二個字符串被轉換爲int。第一次或兩次都不錯,但是對於每一個AJAX操作都會變得老掉牙。

理想的情況下,它會是真棒能有像簽名:

public void DoSomething(string param1, int param2) 

在那裏我可以只跳權,用自己的價值觀,而不必擔心JSON解碼,就像是對非AJAX動作完成。

有沒有辦法做到這一點?

回答