2013-03-26 103 views
0

我想从控制器传递int值,并检查$ .ajax中的值是否大于0。我不知道该怎么做。我试过了一个代码,但它给了我一个未定义的值。控制器中的数据正在正常工作。但回国没能做到:

AJAX代码int值:

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

您需要返回JSON

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

    return Json(new { success }); 
} 
+1

如果块似乎不必要... – 2013-03-26 13:31:53

+0

我真的没有看他的代码。很好的接收。 – Romoku 2013-03-26 13:32:32

+0

小东西。你的回答是正确的;) – 2013-03-26 13:33:34

0

就在使用结果你的成功回调,而不是result.success。

结果本身将包含您返回的值。