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?
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
@Slicksim J'ai mis à jour la question. – gkon
Avez-vous défini votre routage sur le contrôleur aussi? ou juste sur cette action? – Slicksim