Asp.Net Routing - 显示完整的URL

5 c# asp.net asp.net-mvc-routing asp.net-mvc-4

我有一个域名"http://www.abc.com".我在这个域上部署了一个ASP.net MVC4应用程序.我还在RouteConfig.cs中配置了默认路由,如下所示

routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "MyApp", action = "Home", id = UrlParameter.Optional }
            );
Run Code Online (Sandbox Code Playgroud)

以上映射确保任何试图访问"http://www.abc.com"的人自动显示"http://www.abc.com/MyApp/Home"页面

一切都按预期工作,但浏览器中的地址栏显示"http://www.abc.com"而不是"http://www.abc.com/MyApp/Home".有没有办法强制浏览器显示完整的URL,包括控制器和Action?

Lau*_*nce 2

一种选择是将默认路由设置为新控制器,可能BaseController通过操作调用Root

public class BaseController : Controller
{
    public ActionResult Root()
    {
        return RedirectToAction("Home","MyApp");
    }
}
Run Code Online (Sandbox Code Playgroud)

并修改您的RouteConfig指向根请求:

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Base", action = "Root", id = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)