十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
最近在開發(fā)asp.net core時,遇到RequestBody和RequestForm數(shù)據(jù)提交方式,整理了一下,把結(jié)果記錄下來。

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),金鄉(xiāng)企業(yè)網(wǎng)站建設(shè),金鄉(xiāng)品牌網(wǎng)站建設(shè),網(wǎng)站定制,金鄉(xiāng)網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,金鄉(xiāng)網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
對于RequestForm一般是接收表單的信息,而RequestBody通常是來接收較為復雜的數(shù)據(jù)(集合或雜雜對象)在asp.net中很容易區(qū)分接收,在action用[FromBody]和[FromForm]來標識就可以,對于客戶端來說,區(qū)別就要大一些,這里記錄兩種方式,RestSharp和JQuery的ajax請求兩種方式。
服務(wù)端
[HttpPost("additem")]
public IActionResult AddItem([FromBody]Item item)
{
return new JsonResult(new { Result = 0, Message = "添加成功",Content=item.ToString() },new Newtonsoft.Json.JsonSerializerSettings ());
}
[HttpPost("additem")]
public IActionResult AddItem([FromForm]Item item)
{
return new JsonResult(new { Result = 0, Message = "添加成功" ,Content=item.ToString()},new Newtonsoft.Json.JsonSerializerSettings ());
}
RestSharp方式
在項目中,用Nuget安裝RestSharp類庫,我用的是v105.2.3。
用RestSharp提交RequestBody和RequestForm相對簡單,代碼如下:
using System;using RestSharp;namespace RestSharpTest
{
class Program {
static void Main(string[] args)
{
while (true)
{
var client = new RestClient("http://localhost:5000");
var request = new RestRequest("additem", Method.POST);
request.RequestFormat = DataFormat.Json;
Console.WriteLine("1、RequestBody 2、RequestForm");
switch (Console.ReadLine())
{
case "1":
request.AddJsonBody(new { ID = 111, Name = "張三", Birthday = DateTime.Now });
break;
case "2":
request.AddObject(new { ID = 111, Name = "張三", Birthday = DateTime.Now });
break;
}
var response = client.Execute(request);
Console.WriteLine(response.Content);
}
}
}
}JQuery中用ajax請求
如果用jquery訪問別的web,設(shè)置跨域訪問(關(guān)于跨域訪問,查看http://www.cnblogs.com/xishuai/p/aspnet-core-cors.html)
一般情況下,web api是用[FromBody],因為一般web api是供app或DeskTop的應用訪問,web頁面請求用[FromForm],一般情況下web頁面是通過表單向后臺提交信息。