Подтвердить что ты не робот

Помощник MVC - используя @URL для изображения src?

Я использую MVC3 и имею простой помощник, который рисует коробку с некоторым текстом и значками внутри для приложения статуса. Отрывок:

@helper Tile(string ID)
 {
 <div class="front defaulttile"> 
    <div class="notifybar" id="NotifyBarID" >
    <img alt="" src="@Url.Content("~/Images/img.jpg")" style="display: inline; margin-right: 5px;" />
    <p class="topstatusbartext" id="NotifyBarTextID" >Status bar text</p>
    </div>
etc...

Было бы здорово использовать @Url.Content для изображения src, но я получаю сообщение об ошибке, которое оно недоступно. Есть ли что-то, что я могу добавить или изменить, чтобы использовать это? Я бы предпочел не использовать жонглирование путей и проблемы с приложением на сервере.

Спасибо!

4b9b3361

Ответ 1

Похоже, кто-то задал вопрос лучше меня. Посмотрите на это:

В ASP.NET MVC, как я могу использовать помощник Razor @Url.Content() из кода С#?

Вы также можете использовать @Href внутри помощника MVC, например:

src="@Href("../../Images/trend_up.png")" (whatever path is relative to the cshtml file)
-- or --
src="@Href("~/Images/trend_up.png")"

Выше приведены для MVC3.

В MVC4 вы получите этот красивый ярлык (обратите внимание на ~):

<img id="img1" src="~/Images/trend_up.png" />

Спасибо Рику Андерсону, Джону Галлоуэю и Эйлону Липтону за помощь.

Ответ 2

В MVC4, определенно весело, чтобы снова использовать тильду, как указано в ответе:

src="~/Images/trend_up.png"

Просто помните, что ссылки на эти изображения в ваших файлах CSS не будут распознавать ~ - MVC4 или нет.

Однако это не та же проблема, что и относительная ссылка на изображение в URL-адресе CSS.
Например, background: url('../Images/menus/menu-left.png') будет относиться к расположению файла CSS. Поэтому, если вам удастся сохранить файл CSS по сравнению с другими папками приложений, вы в порядке...

Ответ 3

    @helper Tile(string ID,UrlHelper url)
 {
 <div class="front defaulttile"> 
    <div class="notifybar" id="NotifyBarID" >
    <img alt="" src="@url.Content("~/Images/img.jpg")" style="display: inline; margin-right: 5px;" />
    <p class="topstatusbartext" id="NotifyBarTextID" >Status bar text</p>
    </div>
etc...