У меня есть приложение MVC, в которое я должен интегрировать несколько страниц веб-форм.
Я просто добавил веб-форму "WebForm.aspx" в корневой каталог, и она работала без каких-либо проблем, когда я обращался к веб-форме с расширением файла http://localhost:54363/WebForm.aspx
, но те же файлы не работают, когда я пытаюсь получить к нему доступ без расширения файла .aspx
http://localhost:54363/WebForm
для этого получим 404 error
.
Чтобы это работало, я внес изменения в файл Global.asax согласно этой статье , но он не работал
Ниже приведен код файла Global.asax
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
namespace ProjectNameSpace
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.RouteExistingFiles = true;
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("Content/{*pathInfo}");
routes.IgnoreRoute("Scripts/{*pathInfo}");
routes.IgnoreRoute("{WebPage}.aspx/{*pathInfo}");
routes.IgnoreRoute("{resource}.ashx/{*pathInfo}");
//routes.MapRoute(
// "Default", // Route name
// "{controller}/{action}/{id}", // URL with parameters
// new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
//);
routes.MapPageRoute("home", "WebForm/", "~/WebForm.aspx", false,
new RouteValueDictionary {
{ "path", "page-not-found" },{ "pagename", "page-not-found" }
});
}
}
}
Что-то не так в приведенном выше коде или как правильно настроить маршрут для файла WebForm.aspx.
UPDATE:
Мне удалось решить эту проблему, добавив код маршрута веб-формы также в файле RouteConfig.cs также
using AlhabtoorTennisAcademy.CustomFilters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace ProjectNameSpace
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// webforms page route
//Custom route code for webform
routes.MapPageRoute("home", "WebForm", "~/WebForm.aspx", false,
new RouteValueDictionary {
{ "path", "page-not-found" },{ "pagename", "page-not-found" }
});
}
}
........