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 之前尝试这种方式。

4

1 回答 1

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)
}

那么你可以期望模型实例被路由到动作:

[Post]
public JsonResult Save(MyModelType model)
于 2013-10-23T22:23:32.790 回答