2012-05-18 3 views
18

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

@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 для СРК изображения, но я получаю сообщение об ошибке, это не доступно. Есть ли что-то, что я могу добавить или изменить, чтобы использовать это? Я бы предпочел не использовать жонглирование путей и проблему, если приложение находится на сервере.

Спасибо!

ответ

35

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

In ASP.NET MVC how can I use the Razor @Url.Content() helper from C# code?

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

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" /> 

Благодаря Рик Андерсон, Джон Галлоуэй и Эйлон Lipton за помощь.

2
@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... 
4

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

src="~/Images/trend_up.png" 

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

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

Смежные вопросы