@ Html.BeginForm在页面上显示“System.Web.Mvc.Html.MvcForm”

时间:2011-02-12 00:15:01

标签: asp.net-mvc-3 razor html.beginform

我有一个剃刀视图,我在“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 [删除按钮]

假装[删除按钮]是一个实际的按钮,不喜欢拍摄屏幕。

感谢您的帮助。

3 个答案:

答案 0 :(得分:142)

生成表单的推荐方法如下:

<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()直接写入输出。

答案 1 :(得分:25)

请使用@using而不是使用问题解决我正在使用MVC 4

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

答案 2 :(得分:1)

enter image description here

为此,我们可以使用它们

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