Hier ist der relevante Ansicht cshtml CodeWarum wird die MVC-Controller-Aktionsmethode als "HttpPost" gekennzeichnet, die nicht von einer externen JavaScript-Datei aufgerufen wird?
<tbody>
@foreach (var task in Model.TasksSummaryList)
{
<tr>
<th onclick="OnPatientSelected('@task.PatientID')">@task.PatientName</th>
<th>@task.Status</th>
<th>@task.TaskCount</th>
<th>@task.MostRecentTask</th>
</tr>
}
</tbody>
Hier wird die externe JavaScript-Datei
function OnPatientSelected(selectedPatientID) {
$.ajax({
type: "POST",
url: "TasksSummary/TaksSummaryDetailsView",
data: { selectedPatientID: selectedPatientID },
error: function() {
alert("fail");
},
success: function(){
alert("success");
}
});
}
OnPatientSelected enthält Dies zeigt immer Erfolg, aber nie werden die Controller ActionMethod ich
wollen[AllowAnonymous]
[HttpPost]
public ActionResult TasksSummaryDetailsView(/*data from view*/string selectedPatientID)
{
int i = 09;
//Received PatientID from View (Client)
//Browse to the appropriate view
return View();
}
können Sie einen Haltepunkt halten in Ihrem Aktionsmethode und prüfen, ob sie getroffen wird –
Wie haben Sie verifiziert, dass die Aktion nicht aufgerufen wird? Beachten Sie außerdem, dass die angegebene URL die Adresse der aktuellen Seite ist (https://stackoverflow.com/questions/4765740/relative-urls-in-ajax-requests) und möglicherweise nicht den erwarteten Pfad ergibt . –
Versuchen Sie es mit Fiddler zu sehen, welche Anrufe gemacht werden und was die Ausgabe ist. Probieren Sie die URL auch direkt im Browser aus, um zu sehen, ob sie funktioniert: '.../TasksSummary/TaksSummaryDetailsView? SelectedPatientID =" yourvalue "' – TheUknown