Как я могу использовать Url.Content внутри @helper?

#asp.net-mvc-3 #c#-4.0 #razor

#asp.net-mvc-3 #c #-4.0 #razor

Вопрос:

Я создаю некоторые @helper внутри папки App_Code. Цель состоит в том, чтобы полностью заменить мои старые HtmlHelpers, написанные в файле * .cs, построителем строк и всеми другими забавными вещами.

В любом случае, в паре мест я использую Url.Content в атрибутах src <img> тегов. Раньше они отлично работали как HtmlHelpers. Теперь, когда я получил свой код внутри файла *.cshtml в папке App_Code, сайт не хочет компилироваться:

CS0103: имя «URL» не существует в текущем контексте

Какой хороший способ решить эту проблему? Я бы не хотел иметь там относительный путь вместо сопоставления путей.

Ответ №1:

Вы могли бы передать это в качестве аргумента помощнику:

 @helper Foo(UrlHelper url) {
    @url.Action("~/foo");
}
  

и затем:

 @Foo(Url)
  

Комментарии:

1. Смехотворно! Я только что понял, что helper больше не используется. Это работает, спасибо!