我正在使用Url.Content("~/something.jpg")
在视图中获得绝对路径而没有问题。
我想在控制器中使用它,但它不起作用。它返回"/something.jpg"
而不是“http://www.mydomain.com/something.jpg”。
我在google和stackoverflow上尝试了一些技巧但没有成功。
为什么Url.Content()
在控制器中不起作用?
任何想法都会有所帮助。
谢谢
答案 0 :(得分:1)
我不知道为什么这不能在控制器中工作,因为Url.Content是一个mvc帮助器,但我现在你怎么做你想要的。如果你想获得你的文件的绝对路径,你可以尝试这样的事情:
var url=Path.Combine(Server.MapPath("../uploads"), "something.jpg");
总之,我认为您需要的是 Server.MapPath()
答案 1 :(得分:1)
我终于使用new Uri(Request.Url, Url.Content("~/something.jpg"));
找到了我正在寻找的东西。它返回:
在控制器中仅使用Url.Content()
似乎还不够。我们必须使用Uri
类来获取完整的URL。
无论如何,谢谢大家的帮助
答案 2 :(得分:0)
您可以拥有一个包含您的网址的配置条目,并将其附加到前面...
var sUrlPublication = ConfigHelper.SiteUrl + Url.Content("~/....");
将网址添加到AppSettings
...
<appSettings>
<add key="SiteURL" value="...."/>
</appSettings>
您可以添加ConfigHelper
类...
using System.Configuration;
public static class ConfigHelper
{
public static string SiteUrl
{
get { return ConfigurationManager.AppSettings["SiteURL"]; }
}
}
编辑:或者正如Robert提到的那样
var sUrlPublication = Request.Url.Host + Url.Content("~/....");