Как связать мой параметр вызова Ajax с параметром модели моих контроллеров - PullRequest
0 голосов
/ 31 января 2019

Я не могу понять, чего мне здесь не хватает.Я пытаюсь заполнить объект Jquery и отправить этот объект контроллеру, в котором в качестве параметра указана модель, и он правильно связывается.

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

Вот мой Jquery для создания объекта, который я отправлю через ajax

    var testObj = {};
    testObj.empNum = '1234';

Вот мой Ajax Call:

var url = BASE_URL + "Assessment/testing";
$.post({
    url: url,
    data: {
          test: testObj
          },
    success: function (data) {
               console.log(data)
           },
    dataType: 'JSON'
});

Вот моя модель:

public class test
{
    public string empNum { get; set; }
}

И мой контроллер:

[HttpPost]
public JsonResult testing(test t)
{
    return Json(t, JsonRequestBehavior.AllowGet);
}

Я ожидаю, что t в моем контроллере будет содержать тестовую модель с empNum = 1234, но он снова будет иметь значение null.

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Извините, что тратить время впустую, но вот проблема:

Эта строка в контроллере имеет параметр t:

public JsonResult testing(test t)

В моем вызове Ajax имя параметра должно совпадатьимя параметра на контроллере.Так и в этом случае;тест должен быть изменен на t, чтобы соответствовать контроллеру

       data: {
          test: testObj
          },
0 голосов
/ 31 января 2019

Попробуйте использовать это для преобразования объекта js в модель c #

$.post({
url: url,
contentType: "application/json; charset=utf-8",
data: JSON.stringify(testObj),

или для нескольких параметров:

$.post({
url: url,
contentType: "application/json; charset=utf-8",
data: JSON.stringify( {test: testObj} ),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...