带有表单的mvc4 webgrid单元格,代码不会呈现<form>标签</form>

时间:2013-02-14 08:36:12

标签: c# asp.net-mvc webgrid html.beginform

我在MVC4中有一个webgrid,我想要一个自定义列来提交按钮 - 将消息重新发送给特定的人。

列格式的代码如下所示:

format: @<text>
@foreach (DataEntity entity in item.Entities)
{
    using (Html.BeginForm("Resend", "Messages", new {MsgId = entity.MsgID }, FormMethod.Post))
    {
        <input Type="submit" value="@entity.PersonName" />
    }
}
</text>

此代码是从另一台PC手动复制的,因此请忽略任何外观语法错误。

我的问题是HTML页面没有任何表单标签,尽管你可以看到我使用的是Html.BeginForm ......

有没有人知道为什么会这样?

谢谢,Avi。

1 个答案:

答案 0 :(得分:0)

Html.BeginForm不返回字符串,它直接写入页面。这就是您没有在列内容中获取表单标记的原因。

解决方案是手动编写标签。

编辑:

<form action="/Messages/Resend" method="post">
    <input type="hidden" name="outgoingMsgId" value="@entity.MsgID" />
    <input type="submit" value="@entity.PersonName" />
</form>