Asp.net MVC 3 Ajax.beginform提交 - 发送内容

时间:2013-10-23 22:06:20

标签: asp.net ajax asp.net-mvc forms asp.net-mvc-3

我有一个局部视图,其中包含使用ajax.begin表单

创建的表单
 @using (Ajax.BeginForm("Save", "saveStuffHere", null, new AjaxOptions 
   {HttpMethod = "Post", InsertionMode = InsertionMode.InsertAfter,
   OnSuccess = "handleSuccess", OnFailure = "handleError"}))
 {

在我的控制器saveStuffHere中,我有一个方法Save

public class saveStuffHereController : Controller
 {
     ....other things...
    /// <summary>
    /// Save the information
    /// </summary>       
    /// <returns></returns>
    [HttpPost]
    public JsonResult Save(I do not know what is passed here)
    {
       .... db code goes here
    }

我正在使用表单的submit()方法保存表单。如果我在控制器中调用方法错误,请纠正我。但我的问题是究竟是什么回送?或者换句话说,我的Save方法应该期待什么? 基本上我不知道我的Save方法传递了什么。有没有办法让我指明我要回传的东西?我理解并知道如何使用jquery ajax,但我想在继续使用jquery ajax之前尝试这种方式。

1 个答案:

答案 0 :(得分:3)

  

究竟是什么回送

表单中包含的input个标签。因此,如果在最简单的情况下,你有这个:

@using (Ajax.BeginForm("Save")) {
    <input type='hidden' value='test' name='AFormField' />
}

然后控制器操作应该期望通过以下方式路由一个字段:

[Post]
public JsonResult Save(string AFormField)

如果您正在使用HTML帮助程序和强类型模型......

@using (Ajax.BeginForm("Save")) {
    @Html.EditorFor(model => model)
}

然后您可以期望模型实例被路由到Action:

[Post]
public JsonResult Save(MyModelType model)