2017-12-15 2 views
-1

Ich brauche eine Möglichkeit, eine neue eindeutige ID für einen Benutzer zu generieren, wenn eine Person aus einem Textfeld konzentriert. Ich verwende MVC 5 für diese Anwendung. Hier ist mein Controller, alles in der Steuerung wurde Unit-getestet und es gibt den String-Wert, den ich brauche.MVC 5 generieren Formulardaten mit AJAX

Controller. Ich konnte diese URL besuchen und habe eine JSON-Datei mit den korrekten Daten heruntergeladen.

public ActionResult GetNewId() 
{ 
    string newId = utils.newEmployeeId(); 
    return Json(new {eId = newId}, JsonRequestBehavior.AllowGet); 
} 

Javascript, JQuery Aufruf an diesen Controller. Ich weiß nicht, wie ich das ActionResult richtig referenzieren soll. Ich bekomme immer undefinierte Fehler auf EId.

$(function() { 
    $('#employeeId').focusout(function() { 
     if($("#employeeId").val() === "NP") 
     $.ajax({ 
      type: 'GET', 
      url: '@Html.ActionLink("GetNewId", "Employees")', 
      data: { 'eId': eId }, 
      dataType: 'json', 
      success: function (response) { 
       $("#employeeId").val(eId); 
      }, 
      error: function (response) { 
       alert(response); 
      } 
     }); 
    }); 
}); 
+0

können Sie beispielsweise von json posten, die Sie in Erfolgsfunktion erhalten ? –

+0

Warum denken Sie, dass Sie das tun müssen. Die ID sollte nur auf dem Controller erstellt werden, wenn Sie das Objekt speichern. (aber seine '$ (" # employeeId "). val (response.eId);' und löschen Sie die 'data: {'eId': eId},' - Sie senden nichts an den Server) –

+0

versuchen $ ("#employeeId"). val (response.eId); –

Antwort

1

Das Problem ist mit yout Ajax-Request:

1.you müssen Sie die URL in der reuqest ändern, aber es wie folgt {{yourcontroller}/GetNewId}

2.Remove die "data: { 'eId': eId }" Sie brauchen es nicht, youre nichts auf dem Server.

  1. Änderung Ihrer $("#employeeId").val(eId); zu

    $("#employeeId").val(response.eId);

dies wird 100% Arbeit