Передать значения в AJAX - PullRequest
       5

Передать значения в AJAX

0 голосов
/ 06 декабря 2018

Моя цель:

Я пытаюсь отправить значения в метод моего контроллера для обновления базы данных (которая подключена удаленно через API).

Я проверил несколько учебных пособий ( Как передать параметры в $ ajax POST? , например), но я не могу отправить данные в мой контроллер. У меня ошибка 500, связанная с моим вызовом ajax.

Не могли бы вы сказатьмне что делать?

Вид

    $(document).ready(function () {
        $.ajax({
            url: "http://localhost:44338/Registration/ShowRegistration",
            type: 'POST',
            data: JSON.stringify({ "id": 1 }),
            contentType: 'application/JSON',
            success: function (data) { },
            error: function () { }
        })


    });

Контроллер

    [Authorize]
    [HttpPost]
    public async Task<ActionResult> ShowRegistration(Models.RegisterForm rF)
    {
        try
        {
            var test = rF.id;

            Ok("success");
        }
        catch (Exception e)
        {
            Console.Write(e.Message);
            return BadRequest();
        }
        return View();
    }

Модель

public class RegisterForm
{
    public string id { get; set; }

}

1 Ответ

0 голосов
/ 06 декабря 2018

Сначала создайте модель (стандартный способ)

Попробуйте и дайте мне знать.

public class InfoModel
{
    public string id { get; set; }
    //Add your model fields here
}

Ваш API

        [HttpPost]
        public async Task<ActionResult> ShowRegistration(InfoModel im)
        {
          //code
        }

Ваш ajax-вызов проверит это, а затем отправит дополнительные данные:

$.ajax({
    url: "url",
    type: 'POST',
    data: JSON.stringify({"id": id}),
    contentType: 'application/JSON',
    success: function (data) {  },
    error: function () {};
}) 

Проверенный пример: -

   <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script>
        $(document).ready(function () {
            $.ajax({
                url: "http://localhost:62211/Home/ShowRegistration",
                type: 'POST',
                data: JSON.stringify({ "id": 1 }),
                contentType: 'application/JSON',
                success: function (data) { },
                error: function () { }
            })


        });
    </script>

</head>
<body>

</body>
</html>

Api

  using System.Threading.Tasks;
  using System.Web.Mvc;

namespace WebApplication5.Controllers
{
    public class HomeController : Controller
    {
        [HttpPost]
        public async Task<ActionResult> ShowRegistration(Models.info inf)
        {
            // Access inf.id 
            return null;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...