3

良い一日、

私はこのように見える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:行で、2つを連結して、正しく渡されるようにするにはどうすればよいですか?

dtoは次のように定義されます...

var dto = { 'item': item };
4

1 に答える 1

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);
    }
}
于 2012-05-08T22:52:22.600 に答える