Я перенес проект Asp.Net в .Net Core и заметил, что моя конечная точка POST больше не работает.
[HttpGet, Route("Concert/Add/{eventId:int?}")]
public ActionResult Add(int eventId)
{
//This works
}
[HttpPost]
[Route("Concert/Add")]
public IActionResult Add(EntryViewModel entryViewModel)
{
//This action is never reached. I get a 404 Not found in browser
}
На мой взгляд, у меня есть следующая форма:
@using (Html.BeginForm("Add", "Concert", new { eventId = Model.EventId }, FormMethod.Post, null, new { @class = "center-block entryform AddEntry" }))
{
<div class="form-group">
@Html.LabelFor(model => model.Forename, new { @class = "control-label entryLabel" })
<div class="">
@Html.TextBoxFor(model => model.Forename, new { @class = "form-control" })
</div>
</div>
}
Мой StartUp.cs Configure () выглядит следующим образом:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "Events",
template: "{controller=Home}/{action=Index}/{eventId?}");
});
Если я изменю свой маршрут к конечной точке Post на [Route ("Customer / Add / {entryViewModel})"], то он перейдет к этомудействие, но модель является нулевой.Я пропустил другую конфигурацию?