由于需要把以前的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 运行时将读取正文的责任委托给输入格式化程序。