[英]Is it correct way of displaying Image from .NET Core API in ASP.NET MVC View?
我有一個返回圖像的 .NET Core API:
[HttpGet]
public IActionResult GetImage()
{
return File("Image bytes", "image/jpeg");
}
Controller:
public async Task<IActionResult> Index()
{
using var client = new HttpClient();
var response = await client.GetAsync("uri");
var bytes = await response.Content.ReadAsByteArrayAsync();
var base64 = Convert.ToBase64String(bytes);
var imgSrc = string.Format("data:image/jpeg;base64,{0}", base64);
var model = new ImageData { ImageSrc = imgSrc };
return View(model);
}
在視圖中,我只是將圖像源傳遞給img
元素。
一切正常,但這是正確的做法嗎?
API 返回具有FileContentResult
的響應。 有沒有辦法在不將其轉換為 Base64 字符串的情況下呈現該結果並執行我正在做的事情?
感謝任何評論。
您的 API 代碼只是返回圖像,就像任何其他 web 服務器一樣(從客戶端的角度來看),所以除非有一些您沒有顯示的身份驗證步驟,否則您應該能夠直接使用端點img
和 im8B4D45903DZ
獲取您的"uri"
值並將其插入到渲染頁面上的圖像標簽中:
<img src="uri">
例如,如果您的 uri 是https://www.example.com/controller/getImage那么您最終會得到:
<img src="https://www.example.com/controller/getImage">
然后瀏覽器會直接連接到你的API服務器來拉取圖片。
順便說一句,如果您只是想從 ASP.NET 內核 API 提供本地文件,您可能會對使用內置的static 文件功能感興趣:
Static files, such as HTML, CSS, images, and JavaScript, are assets an ASP.NET Core app serves directly to clients by default.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.