我有一个具有ONION
架构的MVC网站。
我正在尝试显示一些图像,而我当前的尝试使我从API
调用中返回图像的URL
,然后使用此路径在HTML
中检索图像。
但是,我在建立图像的URL时遇到了一些困难,这让我想知道是否可以这样做。
基本上,这将是API调用的URL:
http://devServer/api/v1/relevant?Id=187582
将返回对象具有图像 URL
然后,在我的REST
文件夹中,我将创建一个称为Images
的文件夹,该文件夹将保存所有图像,然后我希望通过这样的URL
检索它们:
http://devServer/Images/img.png
这是可能的,如果是这样,我该如何找到url?
尝试以下返回使用querystring
的URL
,这似乎不是将返回图像的URL:
HttpContext.Current.Request.Url.AbsolutePath
HttpContext.Current.Request.Url
//etc...
也许您可以尝试此代码,如果适合您的需求:
// Get request object
var request = HttpContext.Current.Request;
// Generate base application url
var appBaseUrl = string.Format("{0}://{1}{2}", request.Url.Scheme, request.Url.Authority, Url.Content("~"));
// Somehow get name of an image (from filesystem, db, etc.)
var imageFileName = "img.png";
// Generate full image url
var imageUrl = string.Format("{0}/Images/{1}", appBaseUrl, imageFileName);
然后返回该imageurl
作为对象或字符串的属性或API结果的属性。
编辑:
要加入地雷解决方案和Zaitsman的言论,您可以写一些小助手以返回图像URL:
public string GetImageUrl(string baseUrlFromConfig, string imageFileName)
{
// Get request object
var request = HttpContext.Current.Request;
// Generate base application url
var appBaseUrl = !string.IsNullOrWhiteSpace(baseUrlFromConfig)
? baseUrlFromConfig
: string.Format("{0}://{1}{2}", request.Url.Scheme, request.Url.Authority, Url.Content("~"));
// Generate full image url
var imageUrl = string.Format("{0}/Images/{1}", appBaseUrl, imageFileName);
return imageUrl;
}
您将在config(如果存在于config中)和imageFileName中传递给baseurl,以附加到URL。
这是我应该使用的:
HttpContext.Current.Request.Url.Authority