我有一个部分 View ,其中包含使用 ajax.begin 表单创建的表单
@using (Ajax.BeginForm("Save", "saveStuffHere", null, new AjaxOptions
{HttpMethod = "Post", InsertionMode = InsertionMode.InsertAfter,
OnSuccess = "handleSuccess", OnFailure = "handleError"}))
{
在我的 Controller 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()
方法保存表单。如果我在 Controller 中调用的方法错误,请纠正我。但我的问题是到底送回了什么?或者换句话说,我的 Save
方法应该期待什么?
基本上我不知道什么被传递到我的 Save 方法中。有没有办法让我指定我要传回的内容?我了解并知道如何使用 jquery ajax,但在继续使用 jquery ajax 之前我想尝试一下这种方式。
最佳答案
what exactly is being sent back
表单中的任何input
标记。因此,如果在最简单的情况下,您有这样的情况:
@using (Ajax.BeginForm("Save")) {
<input type='hidden' value='test' name='AFormField' />
}
然后 Controller 操作应该期望通过一个字段进行路由:
[Post]
public JsonResult Save(string AFormField)
<小时/>
如果您使用 HTML 帮助程序和强类型模型...
@using (Ajax.BeginForm("Save")) {
@Html.EditorFor(model => model)
}
然后您可以期望模型实例被路由到操作:
[Post]
public JsonResult Save(MyModelType model)
关于Asp.net MVC 3 Ajax.beginform提交-发送什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19553207/