你好,
我有看起来有点像这样的 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);
}
});
}
在 data: 行中,我如何连接两者以便正确传递它们?
dto 是这样定义的...
var dto = { 'item': item };
最佳答案
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);
}
}
关于c# - 使用 jQuery $.Ajax 将 DTO 连同附加参数传递给 WebMethod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10507624/