JQuery Ajax с ASP.NET MVC Action: Передача аргументов из JavaScript в POST - PullRequest
3 голосов
/ 04 марта 2011

У меня есть действие контроллера ASP.NET MVC со следующей подписью VB.NET:

<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

Если я пытаюсь отправить Ajax POST в jQuery в действие 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;
});

Ответы [ 2 ]

1 голос
/ 04 марта 2011
1 голос
/ 04 марта 2011

Я думаю, что вам лучше всего принять позицию как объект в вашем прототипе и использовать CType () , чтобы явно преобразовать его в MapCoordinate в вашей функции.Неявные преобразования не всегда работают так, как мы предполагаем, что они должны.

В качестве альтернативы вы можете просто изменить свой класс MapCoordinate, чтобы определить широту и долготу, поскольку свойства, которые, как я считаю, ведут себя лучше для целей сериализации и назначенияособенно при неявном преобразовании.

Вы уже пробовали этот код?Выдает ли неявное преобразование какие-либо ошибки отладчика?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...