J'ai un formulaire de contact qui est près du bas de la page, et nécessite un défilement pour arriver à; quand le formulaire est soumis, la page est rechargée, et j'ai besoin que la page se rende à une ancre, au formulaire de contact. Quand je change l'action de BeginForm, le '#' dans l'ancre est codé en '% 23' - comment j'arrête ce formulaire?MVC Razor - BeginForm avec l'action d'ancrage
J'ai besoin de ceci pour fonctionner sans Javascript.
@{
using (Html.BeginForm(null, null, new { ReturnURL = "#contact" }, FormMethod.Post, new { novalidate = "novalidate" }))
{
//Fields...
<button type="submit">Submit</button>
}
}
Le code ci-dessus renverra le code HTML suivant, et ne passera pas à l'ancre:
<form action="/en/Home/Contact?ReturnURL=%23contact" method="post" novalidate="novalidate">
Alors que le code HTML suivant serait (mais je ne sais pas comment générer avec Razor) :
<form action="/en/Home/Contact?ReturnURL=#contact" method="post" novalidate="novalidate">
J'ai aussi essayé ce qui suit, mais le '#' est toujours encodées:
using (Html.BeginForm(null, null, new { ReturnURL = HttpUtility.HtmlDecode("#contact") }, FormMethod.Post, new { novalidate = "novalidate" }))
using (Html.BeginForm(null, null, new { ReturnURL = HttpUtility.UrlDecode("#contact") }, FormMethod.Post, new { novalidate = "novalidate" }))
using (Html.BeginForm(new { action = Url.Action("Index", "Home") + Html.Raw("Contact/#contact") }))
https://stackoverflow.com/questions/274586/including-an-anchor-tag-in -an-asp-net-mvc-html-actionlink t ry ceci – Danimal