Я сейчас работаю в заброшенном здании ASP.NET MVC 3 проект в VS2010.Неявное соединение методов действий с представлениями в ASP.NET MVC
В этом проекте виды и контроллеры находятся в отдельных проектах. Это не то, что я видел раньше. В каждом методе действия нет явного указания имени представления, как показано ниже.
return View("viewName",passingModel);//projects where controllers and views are in same
Я сделал это неявно в VS2012 правой кнопкой мыши на представлении и сделать add view
. Поэтому я не беспокоился о том, где эта связь между представлением возврата метода действия и представлением.
В отличии от VS2012, в VS2010 я не могу перейти к представлению, что связанно с одним конкретным способом действия, щелкнув правой кнопка мыши на View и делать go to view
.
Я попытался понять это, выполнив этот небольшой эксперимент. Я создал Controller
и создал Action Method
звонок xxxx
, и я создал представление для неявно, как упомянуто выше, и искал слово во всем решении, но это слово появилось только в контроллере и в представлении.
Итак, я не смог найти ответ. Я думаю, что сама визуальная студия создает собственное картографирование для этого. Я хотел бы знать, кто эти неявные соединения создаются между методами действий и представлениями, чтобы понять, что происходит в моем проекте.
Edit:
Оба проекты, которые содержат контроллеры и представлениями являются библиотеками классов. а не проекты asp.net mvc.
Global.aspx
файл содержит следующее:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
protected void Application_Start()
{
DependenciesHelper.Register(new HttpContextWrapper(Context));
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RoutingHelper.RegisterRoutes(RouteTable.Routes);
}
protected void Application_End()
{
//Should close the index
//If this method is not executed, the search engine will still work.
SearchService.CloseIndex();
}
Я понимаю, что по соглашению, если вы звоните 'View' без имени вида он будет искать представление с тем же именем, что и действие. –
@GeorgeDuckett У вас есть представление о том, как происходит соединение, когда контроллеры и представления находятся в отдельных проектах? –
Думайте, что ваш разговор с Liverpool охватывает это, но в основном это происходит точно так же. Код MVC будет использовать отражение, чтобы найти соответствующие методы/классы и настроенную маршрутизацию. –