J'ai un point de vue rasoir auquel j'ai ajouté un bouton de suppression à l'intérieur d'une instruction 'if' et lorsque la vue est restituée dans le navigateur, il affiche "System.Web.Mvc.Html.MvcForm" à côté de la suppression bouton.
Comment puis-je m'en débarrasser?
Voici le code:
<div id="deletestatusupdate">
@if (update.User.UserName.Equals(User.Identity.Name, StringComparison.OrdinalIgnoreCase))
{
@Html.BeginForm("deleteupdate", "home")
@Html.Hidden("returnUrl", Request.Url.ToString())
<button name="id" value="@update.StatusUpdateId">Delete</button>
}
</div>
Voici comment il apparaît dans la vue Razor rendue:
System.Web.Mvc.Html.MvcForm [Bouton Supprimer]
prétendre que [bouton de suppression] est un bouton réel, n’a pas envie de prendre une capture d’écran.
Merci de votre aide.
La méthode recommandée pour générer un formulaire est la suivante:
<div id="deletestatusupdate">
@if (update.User.UserName.Equals(User.Identity.Name, StringComparison.OrdinalIgnoreCase))
{
using(Html.BeginForm("deleteupdate", "home"))
{
@Html.Hidden("returnUrl", Request.Url.ToString())
<button name="id" value="@update.StatusUpdateId">Delete</button>
}
}
</div>
Sinon, vous pouvez faire ceci:
<div id="deletestatusupdate">
@if (update.User.UserName.Equals(User.Identity.Name, StringComparison.OrdinalIgnoreCase))
{
Html.BeginForm("deleteupdate", "home");
@Html.Hidden("returnUrl", Request.Url.ToString())
<button name="id" value="@update.StatusUpdateId">Delete</button>
Html.EndForm();
}
</div>
La raison pour laquelle votre approche initiale n'a pas fonctionné est que BeginForm()
écrit directement dans la sortie.
Veuillez utiliser @using au lieu de résoudre le problème. J'utilise MVC 4
@using(Html.BeginForm("deleteupdate", "home"))
{
@Html.Hidden("returnUrl", Request.Url.ToString())
<button name="id" value="@update.StatusUpdateId">Delete</button>
}