2012-04-09 18 views
0

Ich habe noch nie Ajax verwendet und ich versuche nur zu sehen, ob dies die Methode von meinem Controller aufrufen und mir das gewünschte Ergebnis geben wird. Der Javascript Debugger in VS scheint momentan nicht zu funktionieren. Sieht das richtig aus?Aktion von jquery korrekt aufrufen?

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

Controller-Methode

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

aktualisieren

$("#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"); 
     } 
    }); 

Antwort

5

Versuchen Sie, die Url.Action HTML Helper-Methode zu verwenden, wenn eine Aktion Methode aufrufen. Dadurch erhalten Sie die korrekte URL zur Aktionsmethode. Sie müssen sich keine Gedanken darüber machen, wie viele ../ hinzufügen/

$(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

Es sollte beachtet werden, dass der Name der Datenwerte mit den Parametern in der Aktion übereinstimmen sollte. Um die atbyrds-Aktion anzupassen, sollten also Daten {clientId: ...} –

+0

@PeterDavidsen: Danke sein. Das habe ich vermisst. Ich habe jetzt repariert. – Shyju

+0

@Shyju funktioniert in dieser Situation wie eine Rückkehr? –

Verwandte Themen