2009-02-20 39 views
5

Khi mã JavaScript của tôi sử dụng AJAX để gọi phương thức ASP.NET MVC, nó chuyển các giá trị trong JSON. Ví dụ:ASP.NET MVC tự động giải mã các tham số mã hóa JSON từ AJAX

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 

hoặc

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 

Về phía ASP.NET MVC, tôi có phương pháp của tôi để xử lý các cuộc gọi:

public void DoSomething(string param1, string param2) { 

gì hút được param1 được bao quanh với trích dẫn nhãn hiệu:

"some string" 

gì hút hơn là param2 là chuỗi:

1234 

khi tôi thực sự muốn giá trị là một số nguyên. Vì vậy, điều đầu tiên tôi phải làm là sử dụng DataContractJsonSerializer để giải mã cả hai con chó để chuỗi của tôi không có dấu ngoặc kép và chuỗi thứ hai của tôi được chuyển đổi thành một int. Nó không phải là quá xấu đầu tiên một hoặc hai lần, nhưng được tuổi phải làm cho mỗi hành động AJAX duy nhất.

Lý tưởng nhất, nó muốn được tuyệt vời để có một chữ ký như:

public void DoSomething(string param1, int param2) 

nơi tôi chỉ có thể nhảy ngay vào và sử dụng giá trị của mình mà không phải lo lắng về JSON giải mã, chỉ thích được thực hiện cho những hành động phi AJAX .

Có cách nào để thực hiện việc này không?

Trả lời

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