我在與Ajax.BeginFormasp.net的MVC Ajax.BeginForm
我有這樣的事情在一個視圖中
<% using (Ajax.BeginForm("ActionName", null , null, new { id = "FormName" }))
{%>
<input type="hidden" value = '<%= Html.Encode(Model.id) %>' name="id"/>
<textarea id="message" name=message rows="4" style="width: 90%">
</textarea>
<% }%}
而且操作方法是這樣的
一些困難[AcceptVerbs(HttpVerbs.Post)]
[Authorize]
public ActionResult ActionName(int id, string message)
{
....
}
我試圖將'id'和'message'傳遞給操作方法。我爲routeValues傳遞'null',但我不知道要傳遞什麼。理想情況下,我試圖找到一個不需要路由值的重載,但採取了actionName和htmlattributes(對於表單名稱),但我找不到一個。我不想向視圖模型添加「消息」,而且我確實需要在那裏用於jquery操作的FormName。 解決此問題的最佳方法是什麼?
哦,我忘了說,這是我的發佈形式
$.post($("#FormName").attr('action'), $("#FormName").serialize(),
function(result) {
$("#correspondingDiv").html(result);
}
);
當我嘗試這個解決方案時,控制器操作方法被調用,但它仍然具有在BeginForm中定義的初始路由值,而不是在窗體中填寫的值。有什麼想法嗎 ? – 2010-04-08 13:48:02
使用Ajax.BeginForm無法填充表單中的值,因爲BeginForm助手在頁面呈現時被調用。您可以使用Request.Form獲取表單字段的值。 – 2010-04-08 14:57:02