我的服务器端代码中有一个类,比如说:
public class foo
{
public int FieldOne { get; set; }
public string FieldTwo { get; set; }
public float FieldThree { get; set; }
}
现在,在我的客户端代码中,有一个表单可以在输入中加载数据,用于从数据库中检索信息,然后必须将该信息加载到jqGrid。
我知道如何从表单中获取服务器端函数/操作数据,如果它是[HttpPost]的形式,如:
[HttpPost]
public ActionResult Index (foo model)
{
...
}
但我无法让网格调用此方法。我已将jqGrid的参数“url”设置为“Controller / Index”,但它不会调用它。
无论如何都要这样称呼它?或者有没有其他方法可以通过Javascript以对象格式发送表单信息?
感谢。
UPD:
这是网格代码:
grid.jqGrid({
url: "Controller/Action",
datatype: 'json',
emptyrecords: "No hay proyectos cargados",
colNames: ['Code', 'Desc', 'Rev', 'Client'],
colModel: [
{ name: 'Code', index: 'Code', width: 100 },
{ name: 'Desc', index: 'Desc asc, Desc', width: 200 },
{ name: 'Rev', index: 'Rev', width: 100, align: "right" },
{ name: 'Client', index: 'Client', width: 200, align: "right" }
],
rowNum: 10,
loadonce: false,
sortname: 'Code',
viewrecords: true,
sortorder: "desc",
height: 'auto',
caption: ""
});
如果我更改@ Url.Action()生成的网址,则相同。
答案 0 :(得分:1)
在网格中添加此行。
mtype: 'GET'
现在您的网格正在尝试针对仅POST操作的GET(默认)请求(由于您应用的属性)。或者,您可以删除POST限制并将AllowGet选项添加到return Json(*******)
。
可能存在多个问题,但让我们从容易的事情开始:)
- 编辑 -
另外,正如评论中所提到的,当使用javascript / ajax / json时,Fiddlers + Firebugs / Chrome控制台会有很多帮助,因为在出现错误时它们不会输出任何视觉内容。