J'utilise asp.net mvc2 pour mon application. J'ai une requête ajax envoyée en utilisant jquery.Request.IsAjaxRequest ne fonctionne pas correctement dans asp.net mvc2
$.ajax{(
url:'/home/index'
type:'post',
data:$('#myform').serialize(),
dataType:'html',
success:function(response)
{
//update relevent document portion
}
});
ici est ma méthode de commande
public ActionResult index(Book book)
{
Repository _repo = new Repository();
_repo.Add(book);
_repo.Save();
if(Request.IsAjaxRequest())
{
return RedirectToAction("List",new{id=book.id});
}
//do something else
}
public ActionResult List(int id)
{
if(Request.IsAjaxRequest())/* here it always returns false even though its been redirected from an ajax request to get here*/
{
//do something
}
}
indice ActionResult Request.IsAjaxRequest() fonctionne correctement, mais lorsque son redirigée à la liste ActionResult ne l'identifie pas comme demande ajax. comment puis-je savoir que cette liste est appelée à partir d'une redirection ajax?
Edit1: Request.IsAjaxRequest renvoie true dans IE pour les méthodes index et List alors que dans firefox Request.IsAjaxRequest est true uniquement pour la méthode d'index. quand j'inspecte le code pour la demande d'ajax je pourrais voir deux d'entre eux; le premier est la méthode post to index et le second est la méthode Get from List. IE envoie l'en-tête x-requested-with avec les deux requêtes alors que firefox n'envoie cet en-tête que pour la première requête destinée à indexer la méthode. Comment puis-je faire fonctionner firefox comme IE (dans ce scénario uniquement) i.e envoyer l'en-tête x-requested-with avec la requête au cas où la deuxième requête ne proviendrait pas du client mais est une redirection de la première requête.
grâce
Il ne work.Because ur plus Rediriger à une autre action dans laquelle il agira redirect.what aussi simple que je veux transmettre que votre message ajax Jquery ne fonctionnera que pour l'action d'index.Vous pouvez le faire en utilisant une variable d'indicateur. Il suffit de définir le statut de l'indicateur avec Request.IsAjaxRequest() sous l'action index et de le vérifier dans la liste. –
@plz c mise à jour à la question –