為了更好的測試,更好的性能,Preview4帶了一個新的請求返回值類型,這個新的類型中封裝了所有的Http請求返回狀態函數,還包括了返回成功后的幾種數據類型,下面列舉了幾個常用的類型:
app.MapGet("/test_ok", () =>
{return TypedResults.Ok<Data>(new Data { Id = 1, Name = "測試產品", Price = 10.2m });
});
app.MapGet("/test_json", () =>
{return TypedResults.Json<Data>(new Data { Id = 1, Name = "測試產品", Price = 10.2m });
});
app.MapGet("/test_localredirect", () =>
{return TypedResults.LocalRedirect("/test_ok");
});
app.MapGet("/test_redirect", () =>
{return TypedResults.Redirect("https://www.google.com");
});
app.MapGet("/test_file", () =>
{var?bytes?=?"這是一個測試"u8;//這個需要C#11,項目文件的PropertyGroup節點中增加<LangVersion>preview</LangVersion>return TypedResults.File(bytes, contentType: "text", fileDownloadName: "test.txt");
});
app.MapGet("/test_physicalfile", () =>
{return TypedResults.PhysicalFile(Directory.GetCurrentDirectory() + "/download.txt", contentType: "text", fileDownloadName: "download.txt");
});
同時也包括了SignIn和SignOut,在授權限時使用,相對于前一版的Results來說還是豐富了不少,比較如下: