我有一个剃刀视图,我在“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 [删除按钮]
假装[删除按钮]是一个实际的按钮,不喜欢拍摄屏幕。
感谢您的帮助。
答案 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)