我是C#MVC的新手, 这是我的默认RouteConfig文件,
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
当我运行项目http://localhost:50382
时,它将重定向默认的home索引方法。
如何构建像http://localhost:50382/somestringcode
这样的自定义网址并调用特定的ActionMethod。类似于指向特定ActionMethod的自定义路由之类的东西,字符串代码将作为参数传递。
public ActionResult Method1( string code)
{
return View();
}
答案 0 :(得分:1)
您要搜索的是attribute routing
。这意味着要明确指定URL路由。
首先,您需要启用它
routes.MapMvcAttributeRoutes();
然后将Route
属性添加到所需的操作:
[Route("")]
public ActionResult Method1( string code)
{
return View();
}
由于code
参数是简单类型,因此将在请求URL中进行搜索。
答案 1 :(得分:0)
您需要执行以下操作,其中controller1是包含Method1的控制器名称,并确保将其放置在第一位并保留原始路由配置,因此当它与该路由不匹配时,它将使用默认路由路线。 请注意,这是一种不好的做法,如果路由试图访问控制器“索引”的默认操作(如@stephen在下面的注释中提到),它将失败,这就是为什么我建议在路线。
routes.MapRoute
(
name: "Method1",
url: "Action1/{code}",
defaults: new { controller = "controller1", action = "Method1", code = "default"}
);