【问题标题】:How to post js string to C# in ASP.NET Core MVC如何在 ASP.NET Core MVC 中将 js 字符串发布到 C#
【发布时间】:2021-03-21 03:11:27
【问题描述】:

我是 ASP 新手,我正在尝试在我的 JS 代码中获取一个字符串并将其发布到我的控制器,以便我可以使用它来查询我的数据库。

JavaScript

function findEmployees(userCounty) {
    $.ajax({
        type: "POST",
        dataType: "json",
        url: '@Url.Action("Index", "Contact")',
        data: JSON.stringify(userCounty),
        contentType: "application/json",
        success: function (response) {
            alert(userCounty);
        },
        error: function (response) {
            alert("failed");
        }
    });
}

控制器

    [HttpPost]
    public ActionResult Index (string userCounty)
    {
        var query = //use linq to query database
        return View(query);
    }

当我在控制器中使用 JsonResult 函数时,我只会收到“成功”警报,但我需要它最终将 LINQ 查询返回给 View();函数,并且在使用 JsonResult 函数时不起作用。任何想法都会有所帮助。如果有更好的方法,我不一定必须使用 ajax。我只需要将存储在 userCounty 中的字符串传递给我的控制器。

【问题讨论】:

    标签: javascript c# asp.net ajax asp.net-core


    【解决方案1】:

    请像这样更改您的控制器方法

    [HttpPost]
    public ActionResult Index([FromBody]string userCounty)
    {
        var query = //use linq to query database
        return View(query);
    }
    

    要查看页面,您需要

    [HttpGet]
    public ActionResult Index()
    {
      return View();
    }
    

    【讨论】:

    • 我已经实现了你放在这里的内容,我可以看到字符串正在传递给函数!但是,当我将查询返回到视图时,页面上没有显示任何内容。它只是空白。在控制台中,我收到一条消息“未声明纯文本文档的字符编码。如果文档包含 US-ASCII 范围之外的字符,则该文档将在某些浏览器配置中呈现乱码。文件需要在传输协议中声明或文件需要使用字节顺序标记作为编码签名。"
    • 当我删除 [HttpPost] 和 [FromBody] 但 ajax 失败时,页面正常加载。我是否需要制作一个单独的函数来接收字符串,然后将其传递给 Index 函数?
    • 您需要一个端点用于获取,一个端点用于发布。
    • 你能详细说明一下吗?对不起,我对 ASP 很陌生
    • 更新了我的答案
    猜你喜欢
    • 1970-01-01
    • 2018-09-20
    • 2019-02-08
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 2021-11-02
    相关资源
    最近更新 更多