1

J'utilise le routage d'attribut pour obtenir l'action de la page. Mais quand je le publie, la forme ajax ignore l'action et le contrôleur que j'ai défini dans les paramètres et essaye d'envoyer la même URL avec la méthode get.Ajax.BeginForm ignore l'action et le contrôleur définis dans les paramètres dans MVC 5

Ceci est mon action get:

[AllowAnonymous] 
[HttpGet] 
[Route("path")] 
public ActionResult Action() 
{ 
    return View(); 
} 

Ceci est mon post action:

[AllowAnonymous] 
[HttpPost] 
public JsonResult Action(Model model) 
{ 
    return Json(true); 
} 

Voici mon avis:

@using (Ajax.BeginForm("Action", "Controller", new AjaxOptions() { HttpMethod = "POST", UpdateTargetId = "someDiv" })) 
{ 

    @SomeInput 

    <input type="submit" value="send" /> 

} 

Ce code HTML généré:

<form action="/path" data-ajax="true" data-ajax-method="POST" data-ajax-mode="replace" data-ajax-update="#someDiv" id="form0" method="post">   
    <input value="submit" type="submit"> 
</form> 

Lorsque le bouton est cliqué. Un message vers le domaine/chemin est en train de se déclencher. Pourquoi l'action que j'ai définie est ignorée?

+0

Pouvez-vous envoyer le code HTML généré par votre Ajax.BeginForm? Je suppose qu'il n'a pas été en mesure de trouver votre itinéraire, donc il l'a laissé vide et il va frapper la racine de votre site Web – Slicksim

+0

@Slicksim J'ai mis à jour la question. – gkon

+0

Avez-vous défini votre routage sur le contrôleur aussi? ou juste sur cette action? – Slicksim

Répondre

0
routes.MapRoute(
       name: "Any Name", 
       url: "Any URL", 
       defaults: new { Controller = "Your Ajax Controller Name ", action = "Your Ajax action Name" } 
      ); 

Ou essayez

routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

Ajouter cela à la dernière de toutes les routes dans RouteConfig.cs

+0

L'itinéraire par défaut est déjà défini dans la configuration de la route. – gkon

+0

Si vous avez utilisé ces scripts sur votre page, veuillez nous donner l'erreur Avin

+0

J'utilise jQuery et Ajax Unobtrusive mais il n'y a pas d'erreur ou quelque chose. Il génère juste une URL différente de celle souhaitée. – gkon