Zuerst aller Entschuldigung für mein schlechtes Englisch. Ich bin neu in der Verwendung von AJAX und APIs, also weiß ich wirklich nicht, was ich falsch mache. Ich muss einige Textfelder nach der Auswahl einer Dropdown-Liste füllen, sagen wir muss ich verwenden: Name Nachname Alter GeschlechtWie man einen Datensatz von der Datenbank erhält und Textkasten auf Dropdown-Auswahl auffüllt
Ich hatte bereits eine Ajax-Funktion und eine API, die gut funktioniert (ich benutze es in einer anderen Ansicht für Anzeigezwecke) jedoch funktioniert mein Ajax-Code nicht, füllt das Textfeld nicht wie es soll. Ich habe versucht, die Anfrage mit Chrome zu Störungsbehebung, ist dies der url:
https://localhost:44397/api/pacient/21?id=21&_=1510262500793
Nach mir, diese URL shoud den Namen meiner Datenbank-Datensatz enthalten, jedoch habe ich zwei mal meine pacient id.
Meine Drop-Down-Liste:
<div class="col-md-4 form-group">
@Html.LabelFor(m => m.Pacient)
@Html.DropDownListFor(m => m.Pacient, new SelectList(Model.Pacient,"Id", "Name"), "--Select--", new { id = "pacientSelector", @class = "form-control" })
</div>
Mein API-Controller Aktion (mit AutoMapper):
//GET /Api/pacient/1
public IHttpActionResult GetPacient(int id)
{
var pacient = _context.Pacient.SingleOrDefault(p => p.Id == id);
if (pacient == null)
return NotFound();
return Ok(Mapper.Map<Pacient, PacientDto>(pacient));
}
Meine AJAX-Funktion:
$('#pacientSelector').change(function() {
var pacientId = $(this).val();
$.ajax({
url: '/api/pacient/' + pacientId,
type: 'GET',
async: true,
cache: false,
data: {id: pacientId},
success: function(data, pacient) {
$("#textboxId").val = pacient.Name;
}
});
});
Entfernen Sie den '+ pacientId' aus dem' url: '(Ihr sendet es bereits mit' data: {id: pacientId}, ' –