2017-08-03 47 views
0

我在我的視圖中有一個預約表單。 iam使用ajax.beginform將表單數據提交給控制器,並返回一個說'成功!'的部分視圖。我的表單中還有一個日期時間選擇器輸入框,旁邊有一個檢查可用性按鈕。當我選擇一個日期我想按檢查可用性按鈕,看看數據庫中是否已經存在該日期和時間。即時通訊使用jQuery Ajax再次調用該窗體。這裏是我的控制器代碼通過Ajax返回部分查看結果

public ActionResult CheckAvailability(string date) 
     { 
      bool available = true; 
      if (ModelState.IsValid) 
      { 


       var result = astrodb.Appointments.Single(check => check.AppointmentTime == DateTime.Parse(date)); 

       if (result.FirstName.Count() == 0) 
       { 
        available = true; 

       } 
       else 
       { 
        available = false; 
       } 
      } 
      else 
      { 
       available = false; 
      } 
      return PartialView(available); 
     } 

我的Ajax調用

 $(function(){ 


     $(document).ajaxStart(function() 
      { 
      showProgressModal('check-loading'); 
      }); 

      $(document).ajaxStop(function() 
      { 
      hidePrograssModal(); 
      }); 



      $("#button-check").click(function(){ 
      url:"@(Url.Action("CheckAvailability","Home"))", 
      type: "POST", 
      data:{name:$("#new").val()}, 
      cache:false, 
      datatype:html, 
      success: function(data){ 
      $("#check-success").html(data);} 

      }); 
      }); 

蔭得不到輸出。 BT IAM得到一個像下面的圖像的錯誤,也是我的jquery datetimepicker停止工作。

Check this error

有人可以幫助我的代碼?

更新的代碼:

$(function(){ 


    $(document).ajaxStart(function() 
     { 
     showProgressModal('check-loading'); 
     }); 

     $(document).ajaxStop(function() 
     { 
     hidePrograssModal(); 
     }); 



     $("#button-check").click(function(){ 
     $.ajax({ 
     url:"@(Url.Action("CheckAvailability","Home"))", 
     type: "POST", 
     data:{name:$("#new").val()}, 
     cache:false, 
     datatype:html, 
     success: function(data){ 
     $("#check-success").html(data);} 
     }); 
     }); 
     }); 
+0

您的ajax電話不正確 –

+0

您能否爲我提供正確的密碼。即時通訊有點新阿賈克斯。 bt我知道ajax.beginform。 – Abhijith

+0

請不要發佈錯誤,堆棧跟蹤等截圖,只需將它們複製到您的問題。 –

回答

1

你忘了添加$.ajax使Ajax調用

$(function(){ 
     $("#button-check").click(function(){ 
      $.ajax({ 
       url:"@(Url.Action("CheckAvailability","Home"))", 
       type: "POST", 
       data:{name:$("#new").val()}, // parameter name should be same in controller action 
       cache:false, 
       datatype:'html', 
       success: function(data){ 
        $("#check-success").html(data); 
       } 
       }) 
     }) 
    }) 

同時,或者您也可以使用$.post方法LIK

$("#button-check").click(function(){ 
    $.post("someUrl",{data:somedata},callBackfunction); 
} 

家庭控制器

public PartialViewResult CheckAvailability(string name) // parameter name same as `ajax call data parameter` 
{ 
    return PartialView(somePartialView) 
} 
+0

我確實添加了$ .ajax。但它仍然沒有調用該函數。調試器訪問ajaxstart和ajax停止第一頁加載..不知道爲什麼..然後它不會輸入ajax調用時,我選擇一個日期,並按下id按鈕檢查按鈕。 – Abhijith

+0

'ajaxStart'和'ajaxStop'方法在每個'ajax調用'上運行。 –

+0

您的控制器中的參數名稱應該與'ajax call'數據參數相同'name' –

0
$.ajax({ 
    type : 'post', 
    url : URL, 
    data : {Key : value,Key : value,Key : value}, 
    cache:false, 
    beforeSend:function() { 
       //this code is before seed 
    }, 
    success : function(response) { 
       //this code is success 
    }, 
    timeout:(1000*20), //waiting time ,if time is over can itin function 
    error:function() { 
     //this code is error 
    } 
}); 
+0

之前種子是我的ajaxstart函數的替代品嗎? – Abhijith

+0

是的,但最好使用'ajaxStart',因爲它在每個'ajax調用之前運行' –