@ 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 View:

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>
}
ANANTH
источник
2

введите описание изображения здесь

Получите право для этого, мы можем их использовать

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

Ашок Редди Медиконда
источник