101

「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 [削除ボタン]

[削除ボタン] が実際のボタンであるふりをして、スクリーン ショットを撮る気がしませんでした。

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

4

3 に答える 3

150

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

<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()、出力に直接書き込むためです。

于 2011-02-12T02:19:59.550 に答える
32

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

@using(Html.BeginForm("deleteupdate", "home"))
{
    @Html.Hidden("returnUrl", Request.Url.ToString())
    <button name="id" value="@update.StatusUpdateId">Delete</button>
}
于 2013-12-21T06:34:19.360 に答える