Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
developer_
11 / 11 / 0
Регистрация: 11.08.2010
Сообщений: 130
1

Как сделать чтобы файлы .cshtml лежащие не в папке View тоже обрабатывались

13.10.2012, 22:09. Просмотров 906. Ответов 2
Метки нет (Все метки)

Смысл прост. У меня несколько другая структура папок для въюх. Так вот, если въюха лежит не в папке View, то подцепляется пространсво System.Web.WebPages, а если в View то System.Web.Mvc (как и надо).
WebConfig который лежит в папке View не на что не влияет(помещал в разные места). Запись в .cshtml файле @using System.Web.Mvc тоже ни к чему не приводит
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2012, 22:09
Ответы с готовыми решениями:

Как сделать чтобы файлы создавались в нужной папке
В проекте VS2008 создаю новый фильтр (папку) нужно чтобы этому фильтру соответствовала какая то...

Как сделать чтобы в течении длительной процедуры обрабатывались события?
События - нажатия кнопок и.т.д...

Как сделать, чтобы все файлы, находящиеся в папке, считали именно ее корневой
Доброй ночи! подскажите, может кто сталкивался. Нужно в отдельную папку на хостинге скинуть...

Как прочитать последовательно все текстовые файлы лежащие в папке, не зная заранее их имен?
Подскажите плз, как прочитать последовательно все текстовые файлы лежащие в папке, не зная заранее...

Скажите, есть ли возможность как-нибудь сделать, чтобы в цикле foreach обрабатывались данные из двух массивов?
Скажите есть возможность как-нибудь сделать чтобы в цикле foreach обрабатывались данные из двух...

2
levka9
42 / 42 / 9
Регистрация: 27.06.2010
Сообщений: 91
17.10.2012, 16:19 2
Лучший ответ Сообщение было отмечено developer_ как решение

Решение

стройте любую структуру view из внутри главной папки views.

вот нашёл пример как сделать по вашему, сам бы так не делал:

ViewLocator-Source:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using System.Web.Mvc;
 
namespace PPM.BusinessLayer.Web.MVC
{
    public class PPMViewLocator : ViewLocator
    {
        public PPMViewLocator()
        {
            ViewLocationFormats = new[] 
            {
              "~/MVC/Views/{1}/{0}.aspx",
              "~/MVC/Views/{1}/{0}.ascx",
              "~/MVC/Views/Shared/{0}.aspx",
              "~/MVC/Views/Shared/{0}.ascx"
            };
 
 
            MasterLocationFormats = new[] 
            {
              "~/MVC/Views/{1}/{0}.master",
              "~/MVC/Views/Shared/{0}.master"
            };
        }
    }
}
Der Platzhalter {1} wird später durch den Controller-Name ersetzt und der Platzhalter {0} wird später durch den View-Name ersetzt.

ControllerFactory-Source:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System.Web.Mvc;
 
using System.Web.Routing; 
 
namespace PPM.BusinessLayer.Web.MVC
{
    public class PPMControllerFactory : DefaultControllerFactory
    {
        protected override IController CreateController(RequestContext requestContext, string controllerName)
        {
            Controller controller = (Controller)base.CreateController(requestContext, controllerName);
            ((WebFormViewEngine) controller.ViewEngine).ViewLocator = new PPMViewLocator();
 
            return controller;
        }
    }
}
Hier leiten wir von der DefaultControllerFactory ab und überschreiben die CreateController Methode. In der Methode lassen wir die Basis den Controller erzeugen und setzen bei der ViewEngine des erzeugten Controller den ViewLocator auf unseren eigenen ViewLocator. Nun fehlt nur noch der Code zum registrieren unser eigenen ControllerFactory. Dies erreicht man indem man in der Global.asax in der Methode Application_Start die neue ControllerFactory setzt:

C#
1
2
3
4
5
6
7
8
protected void Application_Start()
{
    RegisterRoutes(RouteTable.Routes); 
 
    // plug in our custom controller factory to replace the default view locator
 
    ControllerBuilder.Current.SetControllerFactory(typeof(PPMControllerFactory));
}
0
developer_
11 / 11 / 0
Регистрация: 11.08.2010
Сообщений: 130
19.10.2012, 11:52  [ТС] 3
Спасибо. Перешoл на MVC4 там такой проблемы нету.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2012, 11:52

Как написать preg_match чтобы файлы на русском языке тоже захватывал?
preg_match('/\/(+)\/(+)\/(+)$/i', $mi, $matches); ?

Как сделать, чтобы margin тоже покрывался бекграундом
Код: <!DOCTYPE html> <head> <link rel="stylesheet" type="text/css"...

Как сделать чтобы от одного ПК на 2 мониторох показывало 1 и тоже изображение?
Как сделать чтобы от одного ПК на 2 мониторох показывало 1 и тоже изображения . у меня видео...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru