Как отобразить маршруты ресурсов в ASP.NET MVC3? - PullRequest
2 голосов
/ 25 января 2012

Кто-нибудь знает, как я могу перенаправить все запросы сказать / images в / Content / images в MVC3?Я просто хочу определенные соглашения об именах.

Спасибо,

Ответы [ 2 ]

0 голосов
/ 26 января 2012

Лучший ответ, который я могу дать, - никогда не пытаться запрашивать какой-либо контент непосредственно из самого представления.

Вместо этого создайте HTML-помощники для обработки этих запросов и укажите только фактический путь к файлам в этих помощниках.,Таким образом, когда вещи неизбежно перемещаются вокруг вас, вы меняете путь один раз в вашем помощнике, и каждое представление просто работает.это пример моего помощника по изображениям, я думаю, что украл это у Роба Конери и его удивительного примера Tekpub MVC.

В этом классе я объявляю статические переменные pubdir (для моего каталога содержимого) и imageDir (для моих изображенийвложенная папка в моем каталоге содержимого)

  public static string Image(this HtmlHelper helper, string fileName, string attributes)
    {
        fileName = string.Format("{0}/{1}/{2}", pubDir, imageDir, fileName);
        if (string.IsNullOrEmpty(attributes))
        {
            return string.Format("<img src='{0}'/>", helper.AttributeEncode(fileName));
        }
        var temp = string.Format("<img src='{0}' '{1}' />", helper.AttributeEncode(fileName), helper.AttributeEncode(attributes));

        return temp;
    }

Я перегрузил это другим методом, когда все, что у меня есть, это имя файла.

public static string Image(this HtmlHelper helper, string fileName)
    {
        return Image(helper, fileName, "");
    }

Теперь, когда я хочу изображение в моем представлении, я вызываю

 @Html.Image("hello.jpg")

Все, что я указываю, - это имя файла, и тег изображения возвращается мне.Вы можете сделать это дальше (если хотите) и создать метод HelloImage, который не принимает аргументов, где вы указываете имя файла в реальном методе, если изображение когда-либо переименовано.

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

http://codingsmith.co.za/extending-the-actionlink-helper-in-mvc/

0 голосов
/ 25 января 2012

Возможно, вы хотите использовать постоянные перенаправления? Кто-то уже задавал тот же вопрос, и ответ есть: Устаревшие маршруты перенаправления для статических файлов в ASP.Net MVC

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...