0

コントローラからint値を渡し、$。ajaxで0より大きいかどうかを確認したいと思います。やり方がわかりません。コードを試しましたが、未定義の値が表示されます。コントローラにデータを入力することは正常に機能しています。しかし、int値を返すことはできません。:

AJAXコード:

function bindForm(dialog,urlString) {
    $('form', dialog).submit(function () {
    var data_send = $(this).serializeArray();
    $.ajax({
        url: urlString, 
        type: this.method,
        data: $(this).serialize(),
        success: function (result) {
        alert(result.success);
        if (parseInt(result.success, 10) > 0) {
            alert('Details Added Successfully');
            $('#dialog-form').dialog('close');
            var hdnInvoiceId = document.getElementById("Invoice_Id");
            hdnInvoiceId.value = parseInt(result.success, 10);
            $('#addInvoiceDetail').hide();
            } else {
            alert('Please Re-enter Details');
            bindForm();
            }
        }
    });
    return false;
});

コントローラーコード:

[HttpPost]
public int AddInvoice(Invoice model)
{
    int Invoice_Id = CRMServiceDL.insertInvoiceDetail(model);
    int success;
    if (Invoice_Id > 0)
    {
        success = Invoice_Id;
    }
        else {
        success = -1;

    }
    return success;
}
4

2 に答える 2

4

Jsonを返す必要があります

[HttpPost]
public JsonResult AddInvoice(Invoice model)
{
    int invoiceId = CRMServiceDL.insertInvoiceDetail(model);
    int success = invoiceId > 0 ? invoiceId : -1;

    return Json(new { success });
}
于 2013-03-26T13:28:50.057 に答える
0

result.successではなく、successコールバックでresultを使用するだけです。

結果自体には、返された値が含まれます。

于 2013-03-26T13:30:39.327 に答える