从Javascript for jqGrid通过JSON发送服务器端对象
Sending a server-side object via JSON from Javascript for jqGrid
我的服务器端代码中有一个类,比如说,类似于这样的类:
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()生成的URL也是一样的。
在网格中添加此行。
mtype: 'GET'
现在,您的网格正在尝试一个GET(默认)请求,请求只执行POST操作(由于您应用的属性)。或者,您可以删除POST限制,并将AllowGet选项添加到return Json(*******)
中。
可能不止一个问题,但让我们从简单的事情开始:)
-编辑-
此外,正如评论中所提到的,Fiddlers+Firebugs/Chrome控制台在使用javascript/ajax/json时有很大帮助,因为当出现错误时,它们不会输出任何视觉效果。
相关文章:
- 如何从jQuery对象文本正确调用服务器端ASP.NET并将数据返回给jQuery
- 从Javascript for jqGrid通过JSON发送服务器端对象
- 添加到序列化数组中的复杂对象在服务器端始终为 null
- 将 JSON 对象转换为序列化字符串以进行服务器端处理
- 从服务器端将属性绑定到套接字对象;似乎不能正常工作
- 将服务器端数据馈送到 JavaScript 对象构造函数中
- 如何使用 ajax 调用带有参数(对象)的服务器端方法,其中 url 具有查询参数
- 如何使用 meteor 绑定客户端对象上的服务器端事件,反之亦然
- 如何为数据表服务器端处理返回 JSON 对象
- 在服务器端创建整个高图表对象
- 服务器端事件(对于虚拟对象:))
- 我可以使用HttpBrowserCapabilities对象在服务器端检测IE文档模式吗
- 使用Angular Meteor的服务器方法更新Meteor客户端对象
- javascript对象的服务器端类型是什么,使用JSON序列化客户端,通过ajax调用传递
- angular服务器端验证,如何从对象引用中找到表单元素
- 如何上传JSON文件在Javascript运行时创建对象,而不改变服务器端脚本
- 如何将json对象保存为文件服务器端
- 如何在asp.net c#中获得服务器端XMLHTTPRequest对象
- 如何在服务器端存储json对象并使用它进行响应
- 在回发时将服务器端对象数组传递给客户端