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 [删除按钮]

假装 [delete button] 是一个实际的按钮,不想截屏。

感谢您的帮助。

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 回答
2

在此处输入图像描述

做对了,我们可以使用它们

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

于 2018-06-21T06:03:43.513 回答