web-dev-qa-db-ja.com

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

「if」ステートメントの内部に削除ボタンを追加したかみそりのビューがあり、ビューがブラウザーで表示されるときに表示されます"System.Web.Mvc.Html.MvcForm" next削除ボタンに。

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

コードは次のとおりです。

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

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

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

94
Timothy Green

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

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

143
marcind

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

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

enter image description here

私たちはそれらを使用できます

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