2011-02-12 66 views
90

我有一个剃须刀视图,我在'if'语句中添加了一个删除按钮,并且当视图在浏览器中呈现时正在显示“System.Web.Mvc.Html.MvcForm”旁边的删除按钮。@ Html.BeginForm在页面上显示“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[删除按钮]

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

谢谢你的帮助。

回答

131

产生一种形式的推荐方法如下:

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

+0

啊,我只是想这出大约5秒钟,然后发布它。感谢您告诉我为什么会发生这种情况,因为我不知道。 – 2011-02-12 02:28:44

+2

谢谢 - 因为我还错过了使用'@using(Html.BeginForm(“deleteupdate”,“home”))使用 – 2011-11-28 06:49:18

22

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

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