Почему он не получил опубликованные данные в контроллере asp.net mvc с помощью jquery.post () - PullRequest
0 голосов
/ 31 января 2019

Я использую веб-приложение ASP.NET MVC, написанное на VB.NET.Я пытаюсь отправить данные с помощью jQuery на мой контроллер.

Вот мой код контроллера

<HttpPost()>
    Function GetData(p As DataManager) As JsonResult
        'Dim user As New User
        'user.user_name = puser.user_name
        'user.isadmin = puser.is_admin
        Dim x As New List(Of DataManager)
        x.Add(p)
        Return Json(p, JsonRequestBehavior.AllowGet)
    End Function

, тогда вот моя модель данных для класса DataManager

Public Class DataManager
    Public user_name As String
    Public is_admin As Boolean
End Class 

Здесьмой код jQuery для отправки данных

$("#btn-valid").click(function () {
        var user = {
            user_name: 'test',
            is_admin: true
        }
        $.post("http://localhost:57069/Home/GetData/", user, function (data)
        {
            alert("data sent !!"+ data.user_name);
        },'json');

вот мой запрос в режиме разработчика в моем браузере my request  details My response details пожалуйста

Запрос от jQuery выполнен успешно, но проблема в ответе, я получаю нулевые значения, присвоенные моему объекту json

, пожалуйста, помогите!

1 Ответ

0 голосов
/ 01 февраля 2019

После небольшого теста я считаю, что ваша проблема связана с определением члена этого модельного класса:

Public Class DataManager
    Public user_name As String
    Public is_admin As Boolean
End Class 

Обе переменные объявлены как поля, и в отличие от Boolean поля, Stringполе может быть не распознано методом действия, когда строковое значение передано из запроса JSON.Я попытался установить все члены класса DataManager как свойства с ключевым словом Property:

Public Class DataManager
    Public Property user_name As String
    Public Property is_admin As Boolean
End Class 

И тогда ответ data содержит этот объект во время проверки консоли, что указывает на то, что свойство строки назначено правильно:

data: {user_name: "test", is_admin: true}

Поэтому я пришел к выводу, что для передачи строковых значений необходимы строковые свойства вместо полей внутри класса модели.

Рабочий пример: .NET Fiddle

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