C# Брошюра, как правильно разместить данные из представления в контроллер, используя ajax? - PullRequest
0 голосов
/ 16 января 2020

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

leafletLats и leafletLngs являются массивом, но я не уверен в типе данных. Они получены из скоординированного типа LatLng [].

Могу ли я знать, из-за чего метод Post не проходит? это проблемы в контроллере?

в представлении

routeControl.on('routeselected', function (e) {
            var coord = e.route.coordinates;
            var name = e.route.name;
            var leafletLats = coord.map(function(point) {
                return [point.lat];
            });
            var leafletLngs = coord.map(function(point) {
                return [point.lng];
            });

            alert('Array size = ' + coord.length + '\nCoordinates: \n' + leafletLats);
            alert('Array size = ' + coord.length + '\nCoordinates: \n' + leafletLngs);
            //alert('Array size = ' + coord.length + '\nCoordinates: \n' + coord.join('\n'));

            $.ajax({ 
                type: 'Post',
                url: '/Map/GetRouteCoordinates',
                data: JSON.stringify(leafletLats),
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                success: function (data) { 
                    alert(`Request passed!`);
                    console.log(data);
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert(`Request failed!`);
                }
            });

в контроллере

[HttpPost]
        public ActionResult GetRouteCoordinates(MyModel test)
        {
            //do something with the result
            Debug.WriteLine("data passed back");



            return View();
        }


    public class MyModel
    {
        public List<MyModel_Value> latList { get; set; }
    }

    public class MyModel_Value
    {
        public double lat { get; set; }        
    }

1 Ответ

0 голосов
/ 17 января 2020

сделал некоторую модификацию и изменил данные на data: JSON.stringify({ arr: stringifiedArr }) у меня работает

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