Ich versuche, ein json serialisiertes Objekt aus einem MVC-Benutzersteuerelement mithilfe von jQuery abzurufen. Das Problem ist, dass das Ergebnis der vollständige HTML-Code für die Seite ist, die mein Steuerelement enthält. Die Seite und die Steuerung verwenden denselben Controller. Ich habe versucht, die Methode zu brechen, die ich im Controller anrufe, und sie wird nie getroffen. Ich habe verschiedene Inkarnationen der jQuery Ajax-Aufrufe ausprobiert und das gleiche Ergebnis erzielt.JsonResult gibt HTML-Ansicht statt eines serialisierten Objekts zurück, wenn es von jQuery aufgerufen wird. Get()
jQuery-Code:
<script type="text/javascript">
$('#Project_GeneralContractor_Id').change(function() {
//alert('<%= Url.Action("GetGeneralContractor", "Projects") %>/1');
$.get('<%= Url.Action("GetGeneralContractor", "Projects") %>', { id: $('#Project_GeneralContractor_Id').val() }, function(data) {
alert(data);
});
});
</script>
Controller-Code:
public JsonResult GetGeneralContractor(int id)
{
return Json(_GeneralContractorRepository.Get(id));
}
Wo $ ('# Project_GeneralContractor_Id') ist eine Dropdown-Liste und _GeneralContractorRepository.Get (id) liefert ein individuelles GeneralContractor Objekt.
Nicht sicher, was ich habe, aber ich vermute die jQuery Seite, da ich nicht scheinen kann, eine Pause in der Steuerung zu bekommen.
getJSON gibt dasselbe zurück. Merkwürdigerweise merke ich gerade, dass der Call meine Indexaktion in diesem Controller auslöst. Es beginnt zu denken, dass es sich um ein Routenproblem handelt. – nkirkes
Ich habe meine eigene Frage zu diesem Thema beantwortet, aber da Sie auf ein serverseitiges Problem hingewiesen haben (was es war), verdienen Sie den Kredit. – nkirkes