使用ASP.NET MVC的jQuery Ajax操作:在POST中传递来自JavaScript的参数

我有一个带有以下VB.NET签名的ASP.NET MVC控制器操作:
<HttpPost()>
Public Function ClosestCities
   (ByVal position As MapCoordinate, ByVal citiesCount As UInteger) As JsonResult
MapCordinate
类是:
Public Class MapCoordinate
    Public Latitude As Double
    Public Longitude As Double
End Class
如果我试图将jQuery中的Ajax POST发送到
ClosestCities
动作,我的请求应该是什么样的? 当我使用以下代码POST到此操作时,在VS的调试器窗口中,
position.longitiude
position.latitude
等于
0.0
0D
):
$.post("/geodata/closest-cities", { 
    position: {
        Longitude: mapPosition.lng(),
        Latitude: mapPosition.lat()
    },
    citiesCount: 5
}, function (cities) {
    debugger;
});
    
已邀请:
我认为你最好的选择可能是在你的原型中接受作为对象的位置,并使用CType()将它显式转换为你函数中的MapCoordinate。隐式转换并不总是按照我们假设的方式工作。 或者,您可以更改MapCoordinate类以将纬度和经度定义为属性,我发现这些属性在序列化和赋值方面往往表现得更好,尤其是在隐式转换时。 你试过这段代码吗?隐式转换是否会从调试器产生任何错误?     
你需要JsonValueProviderFactory。 将JSON发送到ASP.NET MVC操作方法参数     

要回复问题请先登录注册