在ASP.NET MVC中创建自定义路由的解决方法如下:
protected void Application_Start()
{
// 省略其他代码
// 注册自定义路由
RegisterCustomRoutes(RouteTable.Routes);
}
private void RegisterCustomRoutes(RouteCollection routes)
{
routes.MapRoute(
name: "CustomRoute", // 自定义路由的名称
url: "custom/{id}", // 自定义路由的URL模式
defaults: new { controller = "Home", action = "CustomAction" } // 默认的控制器和动作
);
}
上述代码中,我们在Application_Start方法中调用了一个新的RegisterCustomRoutes方法,该方法接收一个RouteCollection对象作为参数。然后在RegisterCustomRoutes方法中使用routes.MapRoute方法注册自定义路由,指定了自定义路由的名称、URL模式和默认的控制器和动作。
public class HomeController : Controller
{
// 省略其他代码
public ActionResult CustomAction(string id)
{
// 处理自定义路由请求的逻辑
// 这里可以根据需要返回相应的视图或重定向到其他动作
return View();
}
}
上述代码中,我们在HomeController中添加了一个名为CustomAction的方法,该方法接收一个名为id的参数,该参数对应URL中的{id}部分。在CustomAction方法中,你可以根据需要添加处理自定义路由请求的逻辑,比如返回相应的视图或重定向到其他动作。
通过上述步骤,你就可以在ASP.NET MVC中创建自定义路由,并在控制器中处理对应的请求了。记得启动应用程序后,在浏览器中访问/custom/xxx(xxx可以是任意值),应该能够正确匹配到你定义的自定义路由,并进入到对应的控制器方法中。