@Html.BeginForm Отображение "System.Web.Mvc.Html.MvcForm" на странице

У меня есть вид бритвы, что я добавил кнопку удаления внутри оператора "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 [Удалить кнопку]

притвориться, что кнопка [delete] - это настоящая кнопка, не хотелось снимать снимок экрана.

Благодарим вас за помощь.

Ответ 1

Рекомендуемым способом создания формы является следующее:

<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() записывает непосредственно на вывод.

Ответ 2

Пожалуйста, используйте @using вместо использования проблемы. Я использую MVC 4

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