【问题标题】:Value Javascript to JSON in ASP.NET CORE MVC project在 ASP.NET CORE MVC 项目中将 Javascript 值转换为 JSON
【发布时间】:2018-08-21 10:22:57
【问题描述】:

我尝试了很多不同的解决方案,但我不明白为什么我的程序不起作用。 我只想在我的控制器中取值 Javascript。

我的控制器

 public JsonResult TestFunction (string FName)
    {
        return Json(new
        {
            result = "Ok"
        });
    }

视图中的 Javascript

 @section scripts{


<script type="text/javascript" >



    $(document).ready( function() {
        $("#btnClick").click(function () {

            var f = {};
            f.data = JSON.stringify({FName: "FRANK" });
            f.type = "POST";
            f.contentType = "application/json; charset=utf-8";
            f.url = '@Url.Action("TestFunction", "Home")';
            f.success = function (data) {
                alert(f.data);

            };
            f.error = function (response) {
                alert("failed");

            };
            console.log(f.data);
            $.ajax(f);
        });

    });




</script>

}

和或完成Html

我不明白我的错误在哪里。 谢谢。

【问题讨论】:

  • 没有你在你的f 对象中设置了data
  • @StephenMuecke +1 并声明datavar

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


【解决方案1】:

对于application/jsoncontentType,请尝试以下步骤:

  1. 定义视图模型

    public class ViewModel
    {
        public string FName { get; set; }
    }
    
  2. 控制器动作

        [HttpPost]
    public JsonResult TestFunctionViewModel([FromBody]ViewModel vm)
    {
        return Json(new
        {
            result = "Ok"
        });
    }
    
  3. 请求

            var f = {};
        f.data = JSON.stringify({FName: "FRANK" });
        f.type = "POST";
        f.contentType = "application/json; charset=utf-8";
        f.url = '@Url.Action("TestFunctionViewModel", "Home")';
        f.success = function (data) {
            alert(f.data);
    
        };
        f.error = function (response) {
            alert("failed");
    
        };
        console.log(f.data);
        $.ajax(f);
    

    编辑

如果您需要string FName参数,请尝试以下步骤:

  1. 添加[FromBody]

    [HttpPost]
    public JsonResult TestFunction([FromBody]string FName)
    {
        return Json(new
        {
            result = "Ok"
        });
    }
    
  2. 请求

        var f = {};
        f.data = '"FNameTet"';
        f.dataType = "json",
        f.type = "POST";
        f.contentType = "application/json; charset=utf-8";
        f.url = '@Url.Action("TestFunction", "Home")';
        f.success = function (data) {
            alert(f.data);
    
        };
        f.error = function (response) {
            alert("failed");
    
        };
        console.log(f.data);
        $.ajax(f);
    

    注意,'"FNameTet"'

【讨论】:

    猜你喜欢
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 2021-05-13
    • 1970-01-01
    相关资源
    最近更新 更多