2012-04-09 2 views
0

Я никогда не использовал ajax, и я просто пытаюсь понять, вызовет ли это метод у моего контроллера и даст мне желаемый результат. Отладчик javascript в VS, похоже, сейчас не работает. Правильно ли это выглядит?Правильно вызывать действие из jquery?

$("form").submit(function() { 
      var hasCurrentJob = $.ajax({ 
       url: 'Application/HasJobInProgess/@Model.ClientId' 
      }); 
    }); 

метод контроллера

public Boolean HasJobInProgress(int clientId) 
{ 
    return _proxy.GetJobInProgress(clientId).Equals(0); 
} 

Update

$("#saveButton").click(function() { 
     var hasCurrentJob = false; 
     $.ajax({ 
      url: '@Url.Action("HasJobInProgress","ClientChoices")/', 
      data: { id: @Model.ClientId }, 
      success: function(data){ 
       hasCurrentJob = data; 
      } 
      }); 
     if (hasCurrentJob) { 
      alert("The current clients has a job in progress. No changes can be saved until current job completes"); 
     } 
    }); 

ответ

5

Попробуйте использовать Url.Action метод HTML Helper при вызове метода действия. Это даст вам правильный URL-адрес методу действия. Вам не нужно беспокоиться о том, сколько ../ добавить/

$(function(){ 
    $("form").submit(function() { 
    $.ajax({ 
     url: '@Url.Action("HasJobInProgess","Application")', 
     data: {clientId: '@Model.ClientId'}, 
     success: function(data) { 
     //you have your result from action method here in data variable. do whatever you want with that. 
     alert(data); 
     } 
    }); 
    }); 
}); 
+1

Следует отметить, что имя значений данных должно соответствовать параметрам в действии. Таким образом, чтобы соответствовать действию atbyrds, это должны быть данные {clientId: ...} –

+0

@PeterDavidsen: Спасибо. Я пропустил это. Я исправил это сейчас. – Shyju

+0

@Shyju работает как возвращение в этой ситуации? –

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