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

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.


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

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. *@
}

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.