Используйте System.Web.Mvc в приложении веб-форм не MVC ASP.NET
Мы разрабатываем приложение ASP.NET Web Forms с моделируемым URL-адресом REST, для которого мы используем таблицы маршрутизации в global.asax. Однако недавно мы столкнулись с проблемой, когда файлы WebResource.axd и ScriptResource.axd также маршрутизировались. Мы хотели использовать функцию RouteCollection.IgnoreRoute. Однако, так как это в System.Web.Mvc, это будет означать, что нам нужно будет ссылаться на эту dll в приложении не MVC Web Forms.
Безопасно ли нам продолжать этот подход? Если у кого-то есть лучший способ игнорировать маршруты из приложения Web Forms, пожалуйста, поделитесь им. Также обратите внимание, что приложение было интенсивно разработано в веб-формах, и переход на MVC на данном этапе неосуществим.
2 ответа
Для веб-форм вам необходимо использовать System.Web.Routing
Поместите это Global.asax
void RegisterRoutes(System.Web.Routing.RouteCollection routes)
{
routes.Ignore("{resource}.axd/{*pathInfo}");
routes.MapPageRoute(
"Home", // Route name
"WWWWWW", // Route URL
"~/Default.aspx" // Web page to handle route
);
}
Знаете ли вы, что вы могли бы безопасно запустить приложение ASP.NET Web Forms и MVC вместе? Вот несколько ссылок:
- http://www.hanselman.com/blog/IntegratingASPNETMVC3IntoExistingUpgradedASPNET4WebFormsApplications.aspx
- http://www.packtpub.com/article/mixing-aspnet-webforms-and-aspnet-mvc
Кроме того, вы можете просто использовать URL-маршрутизацию в приложениях ASP.NET 4, как указано выше зарегистрированным пользователем. Подробнее об этом читайте здесь: http://weblogs.asp.net/scottgu/archive/2009/10/13/url-routing-with-asp-net-4-web-forms-vs-2010-and-net-4-0-series.aspx