asp.Netcoreの下のRequestBodyとRequestFormコミット
3676 ワード
最近aspを開発しています.Netcoreの場合、RequestBodyとRequestFormのデータ提出方式に遭遇し、整理して結果を記録します.
RequestFormについては、一般的に受信フォームの情報であるが、RequestBodyは、aspにおいて複雑なデータ(集合またはヘテロオブジェクト)を受信ために使用されることが多い.Netでは受信を区別しやすく,actionでは[FromBody]と[FromForm]で識別すればよいが,クライアントにとっては区別が大きく,ここでは2つの方式,RestSharpとJQueryのajaxリクエストの2つの方式を記録する.サービス
RestSharp方式プロジェクトでは、NugetでRestSharpクラスライブラリをインストールし、私はv 105を使用しています.2.3.RestSharpでRequestBodyとRequestFormをコミットするのは比較的簡単で、コードは以下の通りです: JQueryでajaxで要求jqueryで他のwebにアクセスする場合は、ドメイン間アクセスを設定します(ドメイン間アクセスについては、http://www.cnblogs.com/xishuai/p/aspnet-core-cors.html)
RequestFormについては、一般的に受信フォームの情報であるが、RequestBodyは、aspにおいて複雑なデータ(集合またはヘテロオブジェクト)を受信ために使用されることが多い.Netでは受信を区別しやすく,actionでは[FromBody]と[FromForm]で識別すればよいが,クライアントにとっては区別が大きく,ここでは2つの方式,RestSharpとJQueryのajaxリクエストの2つの方式を記録する.
[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 ());
}
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);
}
}
}
}
html>
<meta/> <script/> <input/> <input/> <script> $("#sava1").click(function () {
$.post("http://localhost:5000/additem", { ID: 112, Name: " ", Birthday: "2017-01-23" }, function (result) {
alert(result.Message+result.Content);
},"json")
})
$("#sava2").click(function () {
$.ajax({
type: "POST",
url: "http://localhost:5000/additem",
contentType: "application/json",
dataType: "json",
async: true,
data: JSON.stringify({ "ID": 112, "Name": " ", "Birthday": "2017-01-23 12:12:12" }),
success: function (result) {
alert(result.Message + result.Content);
}
});
})
</script></code></pre>
<p><span style="font-family:' ';"/><br/></p>
<p><span style="font-family:' ';"> ,web api [FromBody], web api app DeskTop ,web [FromForm], web 。</span></p>
<p><br/></p>
</div>
</div>
</div>
</div>
</div>