2

你好,

我有一个这样的地址:~/Content/Files/AdImages/20/20_thumb.jpeg,我需要解决这个问题。这是在 ASP.net 中使用 Control.ResolveUrl() 完成的。

根据这篇文章http://stephenwalther.com/blog/archive/2009/02/18/asp.net-mvc-tip-47-ndash-using-resolveurl-in-an-html.aspx,我应该使用somthing像这样 :

urlHelper.Content("~/Content/Files/AdImages/20/20_thumb.jpeg")

但是,这确实会返回以下网址:/Content/Files/AdImages/20/20_thumb.jpeg 即使我不在解决方案的根目录中(内容放在根目录中)?

我该如何解决这个问题?

请注意,这是来自 html 帮助程序扩展。

//SnowJim

4

2 回答 2

3

是的,~ 在 asp.net 中的工作方式与在 mvc 中的工作方式不同。相反,最好的选择似乎将 ~ 替换为:

Request.Url.GetLeftPart(UriPartial.Authority)

所以而不是:

urlHelper.Content("~/Content/Files/AdImages/20/20_thumb.jpeg")

利用

urlHelper.Content( Request.Url.GetLeftPart(UriPartial.Authority) + "/Content/Files/AdImages/20/20_thumb.jpeg")
于 2011-02-19T23:37:42.137 回答
3

~ 的工作是始终解析到根,以便您看到正确的行为。如果您希望它与您当前所在的路径相关,那么您的路径不应以 ~ 或 /

于 2010-09-19T12:27:09.610 回答