J'ai des problèmes avec les aides de formulaire sur mon projet .net Core MVC. J'ai la forme suivante:Les aides de formulaire Asp ne créent pas la route correctement
MyForm.cshtml
<div id="myDiv" class="row">
<br />
<form asp-controller="testing" asp-action="MyForm" asp-route-returnUrl="returnHome">
<input type="text" asp-for="Name" name="Name" />
<button type="submit">Submit</button>
</form>
et mes actions dans TestingController.cs
[HttpGet, Route("testing/MyForm/{code}")]
public IActionResult MyForm(string code)
{
return View();
}
[HttpPost]
public IActionResult MyForm(FormVM request)
{
// do stuff
// return some view
return View();
}
L'idée ici est que les terres de l'utilisateur sur la page MonFormulaire avec une sorte de code (généralement un GUID mais d'autres chaînes sont possibles). Ensuite, ils remplissent le formulaire et le soumettent. Le problème que j'ai est que les aides pour le formulaire ne construisent pas l'action du formulaire correctement (ou du moins pas la façon dont il devrait être ici https://docs.microsoft.com/en-us/aspnet/core/mvc/views/working-with-forms).
Si j'utilise le code ci-dessus et que j'inspecte le code html, l'action du formulaire sera "testing/MyForm/asdf? ReturnUrl = returnHome" (le code utilisé était "asdf").
J'obtiens le même résultat que j'inclue ou non la pièce asp-controller
.
Si je <form asp-route="MyForm">
alors l'action de la forme restera vide, <form action method="post">
Ce que je besoin est d'agir comme « test/MonFormulaire? ReturnUrl = returnHome » mais la valeur de mon {code} conserve rampant . Est ce que quelqu'un sait comment accomplir cela?
Merci!