gpt4 book ai didi

javascript - 带有 ASP.NET MVC 操作的 jQuery Ajax : Passing arguments from JavaScript in POST

转载 作者:行者123 更新时间:2023-11-29 15:04:28 25 4
gpt4 key购买 nike

我有一个具有以下 VB.NET 签名的 ASP.NET MVC Controller 操作:

<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到这个 Action 时,在VS的调试器窗口中,position.longitiudeposition.latitude等于0.0 (0D):

$.post("/geodata/closest-cities", { 
position: {
Longitude: mapPosition.lng(),
Latitude: mapPosition.lat()
},
citiesCount: 5
}, function (cities) {
debugger;
});

最佳答案

我认为你最好的选择可能是接受 position 作为原型(prototype)中的对象并使用 CType()在您的函数中将其显式转换为 MapCoordinate。隐式转换并不总是按照我们假设的方式工作。

或者,您可以只更改 MapCoordinate 类以将纬度和经度定义为属性,我发现为了序列化和赋值的目的,这些属性往往表现得更好,尤其是在隐式转换时。

你试过这段代码了吗?隐式转换是否会从调试器中产生任何错误?

关于javascript - 带有 ASP.NET MVC 操作的 jQuery Ajax : Passing arguments from JavaScript in POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5189205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com