Я начинаю работать над проектом веб-форм, выполненным на .net framework 4. Мы хотим начать работать с новыми функциями в MVC и начать медленно переносить старые унаследованные функции, и мы хотим воспользоваться преимуществами возможности наличия MVC. рядом с aspx. Это изначально был и проект веб-форм asp.net.
Я начал с добавления MVC. так как проект нацелен на фреймворк 4, я установил MVC 4.0.40804. Обновление фреймворка в это время может быть громоздким и потребовать много кода для рефакторинга.
Пока что установка компонентов прошла хорошо, и проект скомпилирован. Я начал это, чтобы проверить, что файлы aspx все еще работают и бум. они не Я получаю ошибку 404. страница по умолчанию - Account / Login.aspx , но она изменяется на Account / Login? ReturnUrl =% 2fAccount% 2fLogin.aspx .
Итак, я начал проверять и нашел эту статью от Скотта Хансельмана и попытался настроить мой файл RouteConfig, но ничего не получилось. Прямо сейчас мой файл выглядит так.
public static void RegisterRoutes(RouteCollection routes)
{
//THIS IS ADDED BY VS
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//THIS I ADDED AT FIRST UPDATE
routes.IgnoreRoute("Account/{myWebForms}.aspx/{*pathInfo}");
routes.IgnoreRoute("{myWebForms}.aspx/{*pathInfo}");
//THIS I ADDED SECOND
routes.IgnoreRoute("Account/{*pathInfo}");
//THEN I ADDED THIS
routes.IgnoreRoute("Account/Login.aspx");
//THEN I ADDED THIS IN THE FINAL ATTEMPT
routes.MapPageRoute(
"login",
"Account/{myWebForm}",
"~/Account/Login.aspx"
);
//THIS IS DEFAULT CONFIG AND WAS HERE FROM THE BEGGINING
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional
}
);
}
Ни одна из попыток не изменила поведение, при любой конфигурации он загружал учетную запись.Login.aspx webForm, как и предполагалось, и каждый раз при запуске в режиме отладки выявлялась одна и та же ошибка.
Как я могу это настроить?
Другое дело, я руководствовался кодом запуска MVC Movies для MVC 4. так что проверьте версии и файл. Я еще не создал классы bundleConfig или webapiconfig, только RouteConfig.
Обновление
Вот теги и из файла веб-конфигурации. кроме этих тегов, есть также конфигурации для строк подключения, параметров приложения и параметров служб WCF, которые не включены.
В конце есть тег с привязкой к зависимости Newtonsoft.json.
<system.web>
<httpRuntime requestValidationMode="2.0"/>
<compilation debug="true" targetFramework="4.0"/>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880"/>
</authentication>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
<!-- <sessionState cookieless="AutoDetect" mode="StateServer" /> -->
</system.web>