asp.net-mvc-3 razor html.beginform

asp.net mvc 3 - @ Html.BeginForm que muestra "System.Web.Mvc.Html.MvcForm" en la página



asp.net-mvc-3 razor (2)

La forma recomendada de generar un formulario es la siguiente:

<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>

Alternativamente, podrías hacer esto:

<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 razón por la que su enfoque original no funcionó es porque BeginForm() escribe directamente en el resultado.

Tengo una visión clara de que agregué un botón de eliminar al interior de una declaración ''if'' y cuando la vista se representa en el navegador muestra "System.Web.Mvc.Html.MvcForm" junto al botón Eliminar.

¿Como me deshago de esto?

Aquí está el código:

<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>

Así es como se muestra en la vista de Razor renderizada:

System.Web.Mvc.Html.MvcForm [Botón Eliminar]

pretender que [eliminar el botón] es un botón real, no tenía ganas de tomar una captura de pantalla.

Gracias por tu ayuda.


Use @using en lugar de usar el problema se resolverá Estoy usando MVC 4

@using(Html.BeginForm("deleteupdate", "home")) { @Html.Hidden("returnUrl", Request.Url.ToString()) <button name="id" value="@update.StatusUpdateId">Delete</button> }