@ Html.BeginForm Menampilkan "System.Web.Mvc.Html.MvcForm" di Halaman

97

Saya memiliki tampilan pisau cukur yang saya tambahkan tombol hapus ke dalam pernyataan 'jika' dan saat tampilan tersebut ditampilkan di browser, ia akan menampilkan "System.Web.Mvc.Html.MvcForm" di sebelah tombol hapus.

Bagaimana cara menyingkirkannya?

Ini kodenya:

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

Berikut adalah bagaimana itu muncul di Razor View yang dirender:

System.Web.Mvc.Html.MvcForm [Tombol Hapus]

Anggaplah [tombol hapus] adalah tombol sebenarnya, tidak terasa seperti mengambil cuplikan layar.

Terima kasih untuk bantuannya.

Timothy Green
sumber

Jawaban:

147

Cara yang disarankan untuk menghasilkan formulir adalah sebagai berikut:

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

Alternatifnya, Anda bisa melakukan ini:

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

Alasan mengapa pendekatan awal Anda tidak berhasil adalah karena BeginForm()menulis langsung ke keluaran.

marcind
sumber
3
menggunakan @using(Html.BeginForm("deleteupdate", "home"))bekerja untuk saya
Gautam Beri
27

Silakan gunakan @using daripada menggunakan masalah akan teratasi. Saya menggunakan MVC 4

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

masukkan deskripsi gambar di sini

Lakukan dengan benar untuk ini, kita dapat menggunakannya

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

Ashok Reddy Medikonda
sumber