2014-11-20 3 views
1

Я довольно новичок в MVC5, и я пытаюсь найти папку локально под одной из моих областей. К сожалению, я не могу получить изображение, которое будет отображаться на выходе, поскольку путь становится неправильным (?), И я не могу понять, как правильно его ссылать.Путь к изображению под MVC5 Area

В своем решении я следующее:

ProjectX 
    Areas 
    Area1 
     Controller 
      Area1DefaultController 
     Content 
      Images 
       image1.png 
     Views 
       View1.cshtml 

На мой взгляд, я использую это:

@Url.Content("~/Areas/Area1/Content/Images/image1.png") 

Я также пробовал ..

@Url.Content("~/Content/Images/image1.png") 
@Url.Content("/Content/Images/image1.png") 
@Url.Content("Content/Images/image1.png") 

..И результат во всех случаях нарушаются изображения (т. е. путь неверен). Я предполагаю, что маршрутизация каким-то образом препятствует извлечению изображения, но я не могу понять, как исправить проблему.

Это моя область регистрации:

public class Area1Registration : AreaRegistration 
{ 
    public override string AreaName 
    { 
     get { return "Area1"; } 
    } 

    public override void RegisterArea(AreaRegistrationContext context) 
    { 
     context.MapRoute(
      "Area_default", 
      "Area/{action}/{id}", 
      new { controller = "Area1Default", action = "Index", id = UrlParameter.Optional } 
     ); 
    } 
} 

UPDATE: ReSharper может решить путь в разметке.

Как я могу найти свои ресурсы в разделе Контент?

+0

Почему вы ставите статическое содержимое как изображение в областях? –

+0

Поскольку они относятся к области, в которой они находятся, и могут быть изображения с тем же именем в статической папке «глобально». Давайте просто скажем, что это проблема дизайна, над которой я не контролирую. Вы знаете, как решить актуальную проблему? – Marcus

+0

Лично я бы использовал использование структуры папок, например '/ content/area1' и т. Д., Но в вашем примере'/Areas/Area1/Content/Images/image1.png' должно работать нормально, что происходит при вводе этого URL-адреса в браузер ? –

ответ

1

Причина, по которой я получил 404, был BlockViewHandler в Районе1 web.config. Я создал новый web.config и поместил его в папку Static, чтобы решить эту проблему.

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <handlers> 
     <remove name="BlockViewHandler" />  
    </handlers> 
    </system.webServer> 
</configuration> 
Смежные вопросы