@ Html.BeginForm Visualizzazione di "System.Web.Mvc.Html.MvcForm" sulla pagina


97

Ho una vista rasoio in cui ho aggiunto un pulsante di eliminazione all'interno di un'istruzione "if" e quando la visualizzazione viene visualizzata nel browser viene visualizzato "System.Web.Mvc.Html.MvcForm" accanto al pulsante Elimina.

Come me ne sbarazzo?

Ecco il codice:

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

Ecco come si presenta nella vista Razor renderizzata:

System.Web.Mvc.Html.MvcForm [pulsante Elimina]

fingere che [pulsante di eliminazione] sia un pulsante reale, non mi sembrava di fare uno screenshot.

Grazie per l'aiuto.

Risposte:


147

Il modo consigliato per generare un modulo è il seguente:

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

In alternativa potresti fare questo:

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

Il motivo per cui il tuo approccio originale non ha funzionato è perché BeginForm()scrive direttamente nell'output.


3
utilizzando ha @using(Html.BeginForm("deleteupdate", "home"))funzionato per me
Gautam Beri

27

Si prega di utilizzare @using invece di utilizzare il problema verrà risolto Sto usando MVC 4

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

2

inserisci qui la descrizione dell'immagine

Ottenga a destra per questo possiamo usarli

Using(Html.Beginform("Delete", "Home", new { Id = item.id } ))
{
   @* We right the code. *@
}

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.