ASP.NET MVC et JQuery obtenir des informations sur le contrôleur
Je suis totalement confus sur la façon de faire de l'ajax fourre avec jQuery et il semble que plus j'essaie le plus confus que je reçois. À ce stade, tout ce que je veux faire est d'obtenir des données sur mon contrôleur à l'aide d'ajax de jQuery. Un peu de code pour mon jquery ajax appel.
$(function() {
$('#buttonAddLink').click(function() {
var AjaxLink = {
title: $("#linkTitle").val(),
url: $("#linkUrl").val()
};
$.ajax({
url: '/User/AddLink',
type: 'POST',
data: AjaxLink,
dataType: 'json',
success: function(result){
$('.added').html(result.Result).show();
}
});
});
});
Voici mon contrôleur et l'Action que j'utilise. Essayez de regarder plusieurs tutoriels il "devrait" travailler au meilleur de ma connaissance, mais apparemment, je ne le comprends pas comme je le pensais je n'ai.
public ActionResult AddLink(string title, string url)
{
return Json(new { Result = string.Format(title + " " + url)});
}
Tout ce que je suis fondamentalement d'essayer de faire, c'est faire l'appel Ajax et le retourner à l'affichage juste pour s'assurer que les données ont été envoyées au contrôleur.
Vous devez vous connecter pour publier un commentaire.
Il a à voir avec la façon dont vous êtes à la structuration de votre demande. Votre JQuery appel est d'envoyer les données au AddLink action de l'Utilisateur sur le contrôleur de données de POSTES, ce qui signifie dans votre code C#, vous aurez accès via la Demande.La forme de l'objet. Avec ce que vous êtes en train de faire, vous feriez de la structure de l'jQuery URL
Ce serait vous obliger à écrire une règle dans votre Global.ASAX fichier qui s'occupait de ce genre de commentaires. En bref, si vous venez de modifier votre méthode AddLink comme suit:
Je crois que vous aurez la réponse que vous cherchez.
Ok, essayez ce code à l'aide d'Ajax pour transmettre les données de votre méthode d'action:
Avez-vous essayé d'écrire l'URL complète? J'avais un projet en cours d'exécution sur mon serveur IIS local qui avait le même problème. L'url complète a été http://localhost/myproject/user/addlink, mais en utilisant "/user/addlink" dans l'ajax de jQuery appel a soumis http://localhost/user/addlink (notez que "myproject" est manquant, car ce n'est pas vraiment l'url de base autant que jQuery sait).
Utiliser un outil comme firebug pour assurez-vous que l'url que vous attendez est appelé.
De débogage de routine =>
IE developer Toolbar peut également être utilisé à la place de Firebug si vous préférez IE.
si l'appel de l'url et de publier des données semblent corrects, et l'action n'est pas appelé, vous devez vérifier les règles de routage. ie a-t-elle toutes les valeurs par défaut, auquel cas le framework MVC sera la recherche d'une méthode de signature qui contient les valeurs par défaut (avez-vous {id} dans votre url de la règle?)
avez-vous essayé d'utiliser le jQuery.méthode post
doit être quelque chose comme
post valeurs sont mappés à des paramètres dans le MVC appel de sorte foxxtrot du code devrait être inutile.
Je n'ai pas pris le temps de tester encore, mais il semble comme il se doit le travail, l'on pense que je serais assurez-vous que vous décorez la fonction de contrôleur pour laisser savoir qu'il est à la recherche d'un poste comme suit:
Je devrais avoir le temps de le tester cet après-midi si aucune de ces solutions ne fonctionne pour vous.
Si j'ai eu un peu de temps à essayer de comprendre comment récupérer des données à partir d'un appel AJAX. J'ai été en passant un objet JSON à partir de la vue du contrôleur, et ensuite de retour à l'ID de l'objet quand il est fait.
Donc, j'ai finalement obtenu que le travail, et voici ce que j'ai fait sur la vue:
Pour mon contrôleur, je suis retourné un objet Json et fait une AllowGet comme un JsonRequestBehavior
Edit:
En outre, il semble que vous avez POST que le type de demande au contrôleur, et votre méthode de contrôleur n'a pas le
[HttpPost]
annotation. Cela pourrait également être le cas.J'espère que cela aide!
Cheers!