Расширения MVC3 UrlHelper с Razor Views (из .ASPX) - PullRequest
0 голосов
/ 11 февраля 2011

Я просмотрел все, что смог найти в Razor Views, но не смог найти ничего о том, как преобразовать это использование UrlHelper в Razor из WebForms.

.ASPX Пример кода:

<img src="<%= Url.AccountPicture(Model.Picture, "bigger") %>" alt="<%= Html.AttributeEncode(Model.FullName) %>" width="73" height="73" />

Как я преобразовал его в бритву:

<img src="@Url.AccountPicture(Model.Picture, "bigger")" alt="@Html.AttributeEncode(Model.FullName)" width="73" height="73" />

Файл UrlHelperExtensions.cs, который идет с ним:

namespace ShadowVenue.Extensions
    {
        public static class UrlHelperExtensions
        {
            public static string AccountPicture(this UrlHelper helper, string name, string size)
            {
                if (string.IsNullOrEmpty(name))
                    name = "default";

                return helper.Content(string.Format("~/content/images/pictures/{0}_{1}.png", name, size));
            }
        }
    }

Ошибка, которую выделяет Visual Studio | @ Url. AccountPicture | с:

«System.Web.Mvc.UrlHelper» не содержит определения для «AccountPicture», и метод расширения «AccountPicture», принимающий первый аргумент типа «System.Web.Mvc.Helper», не найден ( Вам не хватает директивы использования или ссылки на сборку?)

Выдает эту ошибку в RunTime:

«System.Web.Mvc.UrlHelper» не содержит определения для «AccountPicture», и не найдено никакого метода расширения «AccountPicture», принимающего первый аргумент типа «System.Web.Mvc.UrlHelper» ( Вам не хватает директивы использования или ссылки на сборку?)

У меня есть пространство имен ShadowVenue.Extensions, зарегистрированное в web.config

Пожалуйста, помогите, спасибо!

Ответы [ 2 ]

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

Вам необходимо включить пространство имен ShadowVenue.Extensions в тег <system.web.webPages.razor> (не тег <pages>).

1 голос
/ 11 февраля 2011

В дополнение к ответу SLaks, вы можете поместить тег @using ShadowVenue.Extensions в верхней части бритвы для одноразовой ссылки.

...