这个来自 jquery 的模型绑定,有什么问题吗?
我有以下操作:
public JsonResult GetGridCell(double longitude, double latitude)
{
var cell = new GridCellViewModel { X = (int)Math.Round(longitude.Value, 0), Y = (int)Math.Round(latitude.Value, 0) };
return Json(cell);
}
我使用以下 jquery 调用它:
$.post('Grid/GetGridCell', { longitude: location.longitude, latitude: location.latitude },
function (data) {
InsertGridCellInfo(data);
});
GetGridCell 操作中的参数从未被填充(它们为空)。 调试时,我可以看到我的 Request.Form[0] 被称为经度并且具有正确的值。纬度也是如此。
当我使用完全相同的代码,但使用 $.get
时,一切正常。
我做错了什么?
I have the following action:
public JsonResult GetGridCell(double longitude, double latitude)
{
var cell = new GridCellViewModel { X = (int)Math.Round(longitude.Value, 0), Y = (int)Math.Round(latitude.Value, 0) };
return Json(cell);
}
I'm calling it with the following jquery:
$.post('Grid/GetGridCell', { longitude: location.longitude, latitude: location.latitude },
function (data) {
InsertGridCellInfo(data);
});
The parameters in my GetGridCell action are never filled (they are null).
When debugging I can see that my Request.Form[0] is called longitude and has the correct value. Same goes for latitude.
When I use the exact same code, but with a $.get
everything works fine.
What am I doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不太确定你做错了什么...你有“Grid/GetGridCell”的路由条目吗?
尝试使用 AcceptVerbs 属性装饰您的 JsonResult 方法,为 Get 创建一个单独的方法,为 Post 创建另一个方法。
在快速测试(对我来说)下,没有任何路由条目,我能够传递值:
使用以下示例来发布值:
使用 $.get 代替调用
和
$.post 调用
Not too sure what you are doing wrong... Have you any route entry for 'Grid/GetGridCell'?
Try decorating your JsonResult method with the AcceptVerbs attribute, creating a separate one method for Get and another for Post
Under a quick test (for me) without any route entry I was able to pass the values:
Using the following for example to post the values:
using $.get intead calls
and
$.post calls