@ Html.BeginFormページに「System.Web.Mvc.Html.MvcForm」を表示


97

かみそりビューを使用して、 'if'ステートメント内に削除ボタンを追加しました。ビューがブラウザーでレンダリングされると、削除ボタンの横に"System.Web.Mvc.Html.MvcForm"が表示されます。

どうすれば取り除くことができますか?

これがコードです:

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

以下は、レンダリングされたRazorビューに表示される方法です。

System.Web.Mvc.Html.MvcForm [削除ボタン]

[削除ボタン]は実際のボタンであるかのように振る舞い、スクリーンショットを撮る気にはなりませんでした。

ご協力ありがとうございました。

回答:


147

フォームを生成するための推奨される方法は次のとおりです。

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

あるいは、これを行うことができます:

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

オリジナルのアプローチが機能しなかった理由BeginForm()は、出力に直接書き込むためです。


3
@using(Html.BeginForm("deleteupdate", "home"))私のために働いた使用
ゴータムベリ

27

問題を使用する代わりに@usingを使用してください私はMVC 4を使用しています

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.