0

我需要你的帮助,我不知道路线是如何运作的。

现在,我有以下网址:

http://website.com/controller1/action1
http://website.com/controller1/action2

问题,如何在http://website.com/controller1/action1不影响url 的情况下路由到另一个 urlhttp://website.com/controller1/action2

方法:

访问时http://website.com/controller1/action1,我想显示 url: http://website.com/shortcut,但http://website.com/controller1/action2要显示与http://website.com/controller1/action2.

有可能的 ?

4

2 回答 2

2

您可以routeCollection在文件Global.aspx添加到方法中添加路径RegisterRoutes

routes.MapRoute(
    name: "shortcut",
    url: "shortcut",
    defaults: new { controller = "controller1", action = "action1" }
);
于 2013-09-10T12:35:02.303 回答
0

新的 ASP.NET MVC 3 应用程序中的默认路由将处理您的前两个请求,但您可能对命名约定感到困惑。例如,如果您有一个名为的控制器类HomeController和一个action1在其中命名的操作,则该路由的默认处理方式为/Home/action1.

要处理/controller1/action1and /controller1/action2,您需要按字面意思命名您的控制器类controller1Controller并添加两个操作,例如

public class controller1Controller : Controller
{
    public ActionResult action1()
    {
        return View();
    }
    public ActionResult action2()
    {
        return View();
    }
}

要处理您的路线,您可以使用 Satpal/shortcut建议,只要它在默认路线上方定义即可。路线越具体,它需要在您的路线定义中出现的越早,例如

routes.MapRoute(
    name: "nameOfShortcutRoute",
    url: "shortcut",
    defaults: new { controller = "controller1", action = "action1" }
);

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);

查看此链接以获得良好的路由教程http://www.asp.net/mvc/tutorials/older-versions/controllers-and-routing/asp-net-mvc-routing-overview-cs

于 2013-09-10T12:38:53.133 回答