在ASP.NET MVC中,可以通过在RouteConfig.cs文件中配置路由来控制控制器的动作。下面是一个示例代码:
using System.Web.Mvc;
using System.Web.Routing;
namespace YourNamespace
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// 自定义路由配置
routes.MapRoute(
name: "Page1",
url: "page1",
defaults: new { controller = "Home", action = "Page1" }
);
routes.MapRoute(
name: "Page2",
url: "page2",
defaults: new { controller = "Home", action = "Page2" }
);
routes.MapRoute(
name: "Page3",
url: "page3",
defaults: new { controller = "Home", action = "Page3" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
}
在上面的代码中,我们定义了三个自定义路由(Page1、Page2和Page3),它们分别映射到Home控制器的不同动作。然后,我们还定义了一个默认路由(Default),它可以处理其他未匹配的路由。
要使上述路由配置生效,需要在Global.asax.cs文件中调用RegisterRoutes方法:
using System.Web.Mvc;
using System.Web.Routing;
namespace YourNamespace
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
}
}
通过以上配置,当用户访问以下URL时,将执行相应的控制器动作:
其他未匹配的URL将使用默认路由进行处理。