Свойства модели нулевые, когда Jquery / Ajax вызывают .net core - PullRequest
0 голосов
/ 02 июня 2018

Свойства модели всегда равны нулю при выполнении вызова jquery / ajax в ядре .net.Любая идея, в чем проблема здесь

var fileType = {
    fileTypeDescription: fileTypeDescription,
    isActive: isActive,
    sortOrder: sortOrder,
    CreatedDate: null,
    CreatedBy: null,
    ModifiedDate: null,
    ModifiedBy: null
};            

$.ajax({
    url: url,
    data: { a: fileType },
    type: "POST",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
        alert('Success');
    },
    error: function (data, status, jqXHR) {
    }
});

Модель:

public class MdtFebFileType
{
    public int FileTypeId { get; set; }
    public string FileTypeDescription { get; set; }
    public bool IsActive { get; set; }
    public DateTime? CreatedDate { get; set; }
    public string CreatedBy { get; set; }
    public DateTime? ModifiedDate { get; set; }
    public string ModifiedBy { get; set; }
    public int? SortOrder { get; set; }

}

Метод:

[HttpPost]
public Response AddFileType(MdtFebFileType fileType)
{}

Для части данных в вызове ajax, я имеюпопробовал следующее, но ни один из них не сработал.

JSON.stringify({ model: fileType })
JSON.stringify(fileType)
JSON.stringify({ 'model': fileType })

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

Используйте $ .post вместо $ .ajax.Это решило мою проблему.

Пример

$.post(url, { fileTypeName: fileType })
                        .done(function (response, status, jqxhr) {

                        })
                        .fail(function (jqxhr, status, error) {

                        })
0 голосов
/ 02 июня 2018

Любая идея, в чем здесь проблема

Данные mdoel не отправляются в правильном формате и как таковые не соответствуют ожидаемой модели действием контроллера.

Две вещи, чтобы это исправить.

Сначала приведите в порядок модель, как в клиенте, чтобы данные отправлялись в правильном формате

data: JSON.stringify(fileType),

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

[FromBody]: использовать настроенные средства форматирования для привязки данных из тела запроса.Форматер выбирается в зависимости от типа содержимого запроса.

[HttpPost]
public IActionResult AddFileType([FromBody]MdtFebFileType fileType) {
    //...
}

Ссылка Привязка модели в ASP.NET Core

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