MVC站点返回图像URL



我有一个具有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?

尝试以下返回使用querystringURL,这似乎不是将返回图像的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

最新更新