由於需要把以前的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 運行時將讀取正文的責任委托給輸入格式化程序。