Visual Studio для Mac .net Core 2.0 Ajax передает модель в контроллер - PullRequest
0 голосов
/ 19 мая 2018

Я пытаюсь сделать запрос POST на мой контроллер с передачей модели со стороны клиента с использованием Ajax.

Мой контроллер

[HttpPost]
public string GetMobiles(Model Datas)
{
    string url = "http://mobilws.infomobil.com.tr/mobilws/services/mobiles?token=" + Datas.Token;
    string result = string.Empty;

    var request = (HttpWebRequest)WebRequest.Create(url);
    var response = request.GetResponse();
    using (var responseStream = response.GetResponseStream())
    {
        var reader = new StreamReader(responseStream, System.Text.Encoding.UTF8);
        result = reader.ReadToEnd();
    }

  return JsonConvert.SerializeObject(result);
}

Мой Model.cs

public class Model
{
  public string Token { get; set; }
}

А ajax

var model = { Token: Token };

jQuery.ajax({
    type: "POST",
    url: '../Home/GetMobiles',
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify({ Datas: model }),
    success: function (data)
    {
        alert(data);
    },
    failure: function (errMsg) { 
        alert(errMsg); 
    }
});

Но когда я начинаю отладкусеанс, связанная модель всегда равна нулю.

Есть ли у вас какие-либо идеи для достижения этой цели?

1 Ответ

0 голосов
/ 19 мая 2018

Добро пожаловать в сообщество @ muratgoller.

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

Вместо этого передайте сериализованную модель напрямую в вызове ajax.

jQuery.ajax({
    type: "POST",
    url: '../Home/GetMobiles',
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify(model),
    success: function (data)
    {
        alert(data);
    },
    failure: function (errMsg) { 
        alert(errMsg); 
    }
});

Чтобы ваш JSON был интерпретирован подшивкой модели со стороны Controller.Скорее всего, вам понадобится добавить подсказку [FromBody] к действию.

[HttpPost]
public string GetMobiles([FromBody]Model Datas)
{
    //rest of code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...