2013-02-14 49 views
0

我有一個MVC4中的webgrid,我想要一個自定義列有提交按鈕 - 重新發送消息給特定的人。mvc4 webgrid單元格與表單,代碼將不會呈現<form>標記

列的格式的代碼看起來是這樣的:從另一臺電腦

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> 

此代碼是手抄,所以忽略任何apperant語法錯誤。

我的問題是,HTML頁面可是沒有任何形式的標籤,但你可以看到我使用的是Html.BeginForm ...

有沒有人有任何想法,爲什麼出現這種情況?

謝謝,阿維。

回答

0

Html.BeginForm不返回字符串,它直接寫入頁面。這就是爲什麼你不能在列內容中獲得表單標籤的原因。

解決方案是手動寫入標籤。

編輯:

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

那麼它是怎樣一個的WebGrid外面工作? – 2013-02-14 09:53:12

+0

所以我這樣做了,我有一個不同的問題 - 在控制器中的方法被命名爲「公共無效重發(int outgoingMsgId)」,但我得到一個錯誤,說沒有這樣的參數... 我如何對asp.net機制說,表單參數被命名爲「OutgoingMsgId」而不僅僅是「id」? – 2013-02-14 09:54:13

+0

我已經添加了一個應該工作的例子。您可能需要爲自己的來源調整它。 – pauln 2013-02-14 10:10:02