asp.net mvc Ajax.BeginForm

Bal*_*a R 16 asp.net-mvc ajax.beginform

我在使用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>
  <% }%}
Run Code Online (Sandbox Code Playgroud)

而动作方法就是这样的

    [AcceptVerbs(HttpVerbs.Post)]
    [Authorize]
    public ActionResult ActionName(int id, string message)
    {
     ....
    }
Run Code Online (Sandbox Code Playgroud)

我正在尝试将'id'和'message'传递给action方法.我正在为routeValues传递'null',但我不知道该传递什么.理想情况下,我试图找到一个不需要路由值的重载,但是使用了actionName和htmlattributes(用于表单名称),但我找不到一个.我不想在视图模型中添加"message",我确实需要用于jquery操作的FormName.解决这个问题的最佳方法是什么?

哦,我忘了提,这就是我发布表格的方式

 $.post($("#FormName").attr('action'), $("#FormName").serialize(),
                               function(result) {
                                   $("#correspondingDiv").html(result);
                               }
                            );
Run Code Online (Sandbox Code Playgroud)

Dav*_*sky 32

使用此重载:http: //msdn.microsoft.com/en-us/library/dd470605.aspx

Ajax.BeginForm(
    string "ActionName",
    string "ControllerName",
    new routevalues {id="IDValue",message="MyMessage"},
    new AjaxOptions {OnBegin=[someFunction], OnFailure=[failureFunction] },
    new { id = "FormName" }
)
Run Code Online (Sandbox Code Playgroud)