J'essaie d'obtenir un objet sérialisé json depuis un contrôle utilisateur MVC en utilisant jQuery. Le problème est le retour du résultat est le HTML complet pour la page qui contient mon contrôle. La page et le contrôle utilisent le même contrôleur. J'ai essayé de casser la méthode que j'appelle dans le contrôleur et il ne se fait jamais toucher. J'ai essayé différentes incarnations des appels jQuery Ajax et j'ai obtenu le même résultat.JsonResult renvoie un affichage html plutôt qu'un objet sérialisé lorsqu'il est appelé depuis jQuery Get()
Code jQuery:
<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>
Code Controller:
public JsonResult GetGeneralContractor(int id)
{
return Json(_GeneralContractorRepository.Get(id));
}
Où $ ('# Project_GeneralContractor_Id') est une liste déroulante et _GeneralContractorRepository.Get (id) retourne un objet GeneralContractor individuel.
Je ne sais pas ce que je fais, mais je soupçonne le côté jQuery car je n'arrive pas à faire une pause dans le contrôleur.
getJSON renvoie la même chose. Chose étrange à noter, je viens de réaliser que l'appel frappe mon action d'index dans ce contrôleur. Commencer à penser que c'est un problème de route. – nkirkes
J'ai répondu à ma propre question sur celui-ci, mais puisque vous avez fait allusion à un problème côté serveur (ce qui était le cas), vous méritez le crédit. – nkirkes