Разрешить виртуальный путь в MVC - PullRequest
2 голосов
/ 19 сентября 2010

Привет

У меня есть такой адрес: ~ / 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, Я должен использовать что-то вроде этого:

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

Однако при этом возвращается следующий URL: /Content/Files/AdImages/20/20_thumb.jpeg, даже если я не в корне решения (содержимое помещается в корень)?

Как я могу решить эту проблему?

обратите внимание, что это из расширения вспомогательного html.

// SnowJim

Ответы [ 2 ]

3 голосов
/ 20 февраля 2011

Да, ~ не работает в 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")
3 голосов
/ 19 сентября 2010

Работа ~ заключается в том, чтобы всегда обращаться к корню, чтобы вы видели правильное поведение.Если вы хотите, чтобы это было относительно пути, по которому вы находитесь в данный момент, тогда ваш путь не должен начинаться с ~ или a /

...