2012-05-08 52 views
2

好日子以來,

我已經得到的WebMethod,看起來有點像這樣...

[WebMethod] 
    public static string ProcessItem(Item item, ItemStatus status) 
    { 
     try 
     { 
      item.Process(status); 
      return "Success!"; 
     } 
     catch (Exception ex) 
     { 
      return ex.Message; 
     } 
    } 

我已經得到一個jQuery的方法,看起來有點像這樣...

function Process(dto, status) { 
     $.ajax({ 
      type: 'POST', 
      url: 'ProcessPO.aspx/ProcessItem', 
      data: JSON.stringify(dto) + status', 
      contentType: 'application/json; charset=utf-8', 
      dataType: 'json', 
      success: function (msg) { 
       if (msg.d) 
        alert('success'); 
      }, 
      error: function (xhr, status, errorThrown) { 
       alert(xhr.responseText); 
      } 
     }); 
    } 

在數據:行,我該如何將兩者連接起來,以便他們在正確地傳遞?

的DTO的定義是這樣的...

var dto = { 'item': item }; 

回答

3
var d = JSON.Stringify(dto); 
d.status = status; 

然後在Ajax調用

data: d 

而且通過看你的代碼,你可能要返回JsonResult。

return Json(new {Success=true}); //Success 
return Json(new {Success=false, Message = ex.Message}); //Failure 

//if it is a get request 
return Json(new {Success=true}, JsonRequestBehavior.AllowGet) //Success 
return Json(new {Success=false, Message = ex.Message}, JsonRequestBehavior.AllowGet) //Failure 

這將允許您在JavaScript中查看該方法的結果。

success: function(response){ 
    if(response.Success){ 
     alert('Success!'); 
    }else{ 
     alert('Failure! ' + response.Message); 
    } 
} 
+0

看起來像是在工作,但現在我有其他問題需要解決。感謝您及時的回覆! –

+0

我爲你增加了一些。它應該允許你通過查看你的代碼嘗試來做你想做的事情 – Rob

相關問題