@ Html.BeginForm Mostrando "System.Web.Mvc.Html.MvcForm" en la página


97

Tengo una vista de afeitar que agregué un botón de eliminación dentro de una declaración 'if' y cuando la vista se representa en el navegador, muestra "System.Web.Mvc.Html.MvcForm" al lado del botón de eliminación.

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

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

Gracias por tu ayuda.

Respuestas:


147

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, puede 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 la salida.


3
usar @using(Html.BeginForm("deleteupdate", "home"))funcionó para mí
Gautam Beri

27

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.