【问题标题】:jQuery Ajax with ASP.NET MVC Action: Passing arguments from JavaScript in POST带有 ASP.NET MVC 操作的 jQuery Ajax:在 POST 中从 JavaScript 传递参数
【发布时间】:2023-03-07 13:37:02
【问题描述】:

我有一个带有以下 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.longitiudeposition.latitude等于0.00D):

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

【问题讨论】:

    标签: javascript jquery asp.net-mvc ajax vb.net


    【解决方案1】:

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

    或者,您可以更改您的 MapCoordinate 类以将纬度和经度定义为属性,我发现这对于序列化和分配而言往往表现得更好,尤其是在隐式转换时。

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

    【讨论】:

      【解决方案2】:
      猜你喜欢
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-24
      • 2016-08-14
      • 2017-02-06
      • 1970-01-01
      相关资源
      最近更新 更多