I have been tried to know an attribute routing system in ASP.NET Core. I have following codes and would like to know why my Save Method in controller does not trigger on form post:-
HTML code:-
<form method="post" action="/Address/Save">
<label asp-for="Street">Street:</label>
<input type="text" asp-for="Street" />
<label asp-for="City">City:</label>
<input type="text" asp-for="City" />
<input type="submit" value="Submit" />
</form>
My address controller code follow:-
public class AddressController : Controller
{
public List<Address> addresses { get; set; } = new List<Address>();
[HttpGet()]
public IActionResult Create()
{
return View(new Address());
}
[Route("/Address/Save")]
[HttpPost()]
public IActionResult Save([FromBody] Address address)
{
//codes removed for brevity
}
public IActionResult Privacy()
{
return View();
}
}
startup routing configuration
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Address}/{action=Create}/{id?}");
});
[FromBody]attribute[Route()]attribute commonly used at over Controller name.