.net core ajax提交Controller接收不到的问题处理方法

由于需要把以前的asp.net mvc项目转化成现在的.net core MVC,以前在asp.net mvc里通过Ajax post提交,直接可以使用Request.Form接收,但是在.net core里这样是行不通的,必须是强类型。把此问题记录下来以备用。

前台, Ajax提交  

   $.ajax({
        type: "POST",
        url: '/home/addask',
        data: JSON.stringify(gdata),
       contentType: "application/json",
        async: true,
        dataType: "json",
        success: function (res) {
            if (res.code == 400) {
                alert("提问失败,请重试或联系技术人员.");
            } else {
                resetasktj();

            }
        },
        error: function (err) {
            console.log(err);
        }
    });

后台接收处理:

 public JsonResult AddAsk([FromBody]AskModel model)
        {
      }

public class  AskModel {

   /// <summary>
            /// 询问标题
            /// </summary>
            public string Title
            {
                set { _title = value; }
                get { return _title; }
            }
            /// <summary>
            /// 询问内容
            /// </summary>
            public string Content
            {
                set { _content = value; }
                get { return _content; }
            }
   /// <summary>
            /// 用户名
            /// </summary>
            public string UserName
            {
                set { _username = value; }
                get { return _username; }
            }
 }

  

[FromBody] 属性

将 [FromBody] 特性应用于一个参数,以便从一个 HTTP 请求的正文填充其属性。 ASP.NET Core 运行时将读取正文的责任委托给输入格式化程序

参考:https://docs.microsoft.com/zh-cn/aspnet/core/mvc/models/model-binding?view=aspnetcore-3.1#input-formatters

  

猜你喜欢

转载自www.cnblogs.com/fogwang/p/12808440.html
今日推荐