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

Tim*_*een 95 html.beginform razor asp.net-mvc-3

我有一个剃刀视图,我在一个'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>
Run Code Online (Sandbox Code Playgroud)

以下是它在渲染的Razor视图中的显示方式:

System.Web.Mvc.Html.MvcForm [删除按钮]

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

谢谢您的帮助.

mar*_*ind 144

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

<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>
Run Code Online (Sandbox Code Playgroud)

或者你可以这样做:

<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>
Run Code Online (Sandbox Code Playgroud)

您的原始方法不起作用的原因是因为BeginForm()直接写入输出.

  • 使用`@using(Html.BeginForm("deleteupdate","home"))`为我工作 (3认同)

小智 27

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

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