Как я могу направить "/ img /" в папку "/ Content / img" в ASP.NET MVC 3? - PullRequest
5 голосов
/ 03 июля 2011

Я хочу, чтобы все URL-адреса для моих изображений в приложении ASP.NET MVC имели вид:

www.mydomain.com / img / someimagename.png

Однако яв настоящее время все мои изображения находятся в моем проекте MVC в папке: / Content / img /.

Как мне написать маршрут, который будет сопоставлять / img / Content / img?

Ответы [ 3 ]

5 голосов
/ 03 июля 2011

Изображения не проходят через стек ASP.NET.IIS обрабатывает эти запросы.Вам нужно написать HttpModule, если вы хотите, чтобы ваше приложение ASP.NET обрабатывало запросы изображений.В этом блоге показано, как это сделать: http://weblogs.asp.net/jgaylord/archive/2009/05/04/letting-asp-net-handle-image-file-extensions-in-iis-6.aspx

Но более простым решением было бы просто создать виртуальный каталог в IIS.

4 голосов
/ 03 июля 2011

Для этого вы можете использовать правила перезаписи.Добавьте следующий маршрут для перезаписи раздела в web.config:

<rule name="Img to content img">
 <match url="^img/(.*)" />
 <action type="Rewrite" url="/Content/img/{R:1}" />
</rule>
2 голосов
/ 03 июля 2011

как насчет этого подхода,

 public ActionResult Img(string imgURL)
    {
        ViewBag.imageURL = imgURL;
        return View();
    }

и вида бритвы

<img src="@Url.Content("~/Content/images/"+@ViewBag.imageURL)" />

или в базовом представлении asp.net

 <img src="~/Content/images/"+ViewBag.imageURL)" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...