代码之家  ›  专栏  ›  技术社区  ›  Korpin

在ajax中传递差异值

  •  0
  • Korpin  · 技术社区  · 7 年前

    我的目标是:

    我试图将值发送到控制器的方法中以更新数据库(通过api远程连接)。

    我查了几本教程( How to pass parameters in $ajax POST? 例如)但是我无法在控制器中发送数据,因为我的ajax调用导致了500个错误。

    你能告诉我怎么做吗?

    视图

        $(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 回复  |  直到 7 年前
        1
  •  0
  •   Hitesh Anshani    7 年前

    先创建模型(标准方式)

    试试这个让我知道。

    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>
    

    应用程序编程接口

      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;
            }
        }
    }