2013-03-26 4 views
0

Я хочу передать значение int из контроллера и проверить, больше ли оно в $ .ajax. Я не знаю, как это сделать. Я пробовал код, но он дает мне неопределенное значение. Переход данных в контроллер работает нормально. Но возвращение 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; 
}); 

Controller Код:

[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

блок if кажется ненужным ... –

+0

Я действительно не смотрел его код. Хорошо поймал. – Romoku

+0

мелочь. ваш ответ был прав tho;) –

0

Просто используйте результат в ваш обратный вызов успеха, а затем result.success.

Результат сам по себе будет содержать возвращаемое вами значение.

Смежные вопросы