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

我有一个剃刀视图,我添加了一个“if”语句的内部删除button,当浏览器呈现视图时,它显示“System.Web.Mvc.Html.MvcForm”旁边的删除button。

我如何摆脱它?

这里是代码:

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

假装[删除button]是一个实际的button,不觉得就像一个屏幕截图。

感谢您的帮助。

生成表单的build议方法如下:

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

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

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