J'ai un contrôleur + action très simple, et quand je fais un POST je reçois un 404 je ne comprends tout simplement pas.La publication sur le contrôleur donne une erreur 404 - le routage semble être cassé?
Mon RouteConfig:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Task view",
url: "task/{projectid}",
defaults: new { controller = "Task", action = "Index" });
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional });
}
Mon contrôleur:
public class TaskController : Controller
{
// GET: Task
[System.Web.Mvc.HttpGet]
public async Task<ActionResult> Index(int projectid)
{
// extremely nice and insightful code
return View(vm);
}
[System.Web.Mvc.HttpPost]
public async Task<JsonResult> UpdateSigneeRequest([FromBody] TaskViewModel task)
{
// even more smart code
return Json("OK", JsonRequestBehavior.AllowGet);
}
}
Maintenant, je peux facilement ouvrir /task/75
et j'obtenir le résultat de l'index correct et un ID du projet. Mais je ne peux tout simplement pas POST à /task/UpdateSigneeRequest
. J'ai également essayé d'enlever le paramètre de cette méthode mais rien ne semble fonctionner.
Je ne comprends tout simplement pas cela car mon chemin Default
devrait correspondre à cela (Contrôleur étant une tâche, l'action étant UpdateSigneeRequest, id étant facultatif).