Один из способов, я могу придумать, чтобы достичь этого, написав свой собственный механизм просмотра. Вы можете поместить все это под файлы в Controllers/Членский
- MembershipController
- LogOnView
- LogOnModel
- RegisterView
- RegisterModel
модели не будет проблемой вы можете просто изменить пространство имен для моделей, единственная проблема связана с представлениями. Для этого напишите свой собственный механизм просмотра, чтобы ваше приложение mvc обнаружило физическое расположение файлов вида следующим образом.
public class CustomViewEngine : RazorViewEngine
{
public CustomViewEngine()
{
ViewLocationFormats = new[]
{
"~/Controllers/{1}/{0}.cshtml",
};
}
}
В Global.asax.cs добавить ViewEngine в Application_Start(), включив следующий код
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new CustomViewEngine());
Вы можете также должны заботиться о различных других факторов, таких как обновление атрибута макета в зависимости от где вы размещаете _Layout.cshtml.
Если вы используете области, добавьте также строковый массив AreaViewLocationFormats.
Вы можете выполнить дополнительную настройку, переопределив некоторые из таких методов, как FileExists, CreateView, CreatePartialView.
Примечание. Не забудьте скопировать файл web.config в папку представлений в контроллер членства. В противном случае приложение не находит требуемые пространства имен mvc и не находит таких символов, как viewbag, model и т. Д.
Я думаю, что вас интересуют MVC Области: http://msdn.microsoft.com/en-us/library/ ee671793.aspx –
@Kirk Я думаю, что даже после использования областей MVC у вас все еще есть контроллеры/представления/модели в каждой области, которые ему нужно просматривать. –
Установите Resharper. Чтобы перейти к контроллеру или представлению и т. Д. (С помощью сочетаний клавиш Idea), вы просто нажимаете ctrl-N и начинаете вводить имя, а затем выбираете из списка. Ваши инструменты облегчают жизнь. К сожалению, это не работает для скриптов: -/ – Sean