MVC5 Routing 当输入站点的根 url 时转到特定区域视图
MVC5 Routing Go to specific Areas view when root url of site is entered
我什至不确定我是否知道正确的术语来正确表达这一点。
我是 MVC 的新手,继承了一个部分完成的项目。
项目使用了Areas,我对MVC和路由的理解不够,无法解决以下问题:
我有一个站点,例如 "www.b2c.com",并且有一个区域 "OnlineOrder" 控制器 "Home" 和视图 "Index"。我希望访客在输入 url "http://www.b2c.com" --> OnlineOrder/Home/Index 时默认转到
url“http://www.b2c.com/OnlineOrder/Home/Index”工作正常。
我的 RouteConfig 文件包含:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default_Home", // Route name
"", // URL with parameters
new { controller = "Home", action = "Index" }// Parameter defaults
);
并且我在区域的根文件夹中有一个区域注册文件:
public class OnlineOrderAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "OnlineOrder";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
name: "Info",
url: "OnlineOrder/{controller}/Info/{action}",
defaults: new { controller = "Home", action = "Index" }
);
context.MapRoute(
name: "Default",
url: "OnlineOrder/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
).DataTokens.Add("areas", "OnlineOrder");
}
}
不知道该怎么做。
将您的 RouteConfig.cs 文件添加到您的默认路由上方或删除默认路由。
routes.MapRoute(
name: "Area",
url: "",
defaults: new { area = "OnlineOrder", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
这将确认您的区域是 'OnlineOrder'
public ActionResult Index()
{
ViewBag.Message = RouteData.Values["area"];
return View();
}
谢谢
你有两个可能的选择
- 您可以更改默认路由
- 在您的家庭控制器的索引操作中执行重定向操作
我什至不确定我是否知道正确的术语来正确表达这一点。 我是 MVC 的新手,继承了一个部分完成的项目。
项目使用了Areas,我对MVC和路由的理解不够,无法解决以下问题:
我有一个站点,例如 "www.b2c.com",并且有一个区域 "OnlineOrder" 控制器 "Home" 和视图 "Index"。我希望访客在输入 url "http://www.b2c.com" --> OnlineOrder/Home/Index 时默认转到 url“http://www.b2c.com/OnlineOrder/Home/Index”工作正常。
我的 RouteConfig 文件包含:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default_Home", // Route name
"", // URL with parameters
new { controller = "Home", action = "Index" }// Parameter defaults
);
并且我在区域的根文件夹中有一个区域注册文件:
public class OnlineOrderAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "OnlineOrder";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
name: "Info",
url: "OnlineOrder/{controller}/Info/{action}",
defaults: new { controller = "Home", action = "Index" }
);
context.MapRoute(
name: "Default",
url: "OnlineOrder/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
).DataTokens.Add("areas", "OnlineOrder");
}
}
不知道该怎么做。
将您的 RouteConfig.cs 文件添加到您的默认路由上方或删除默认路由。
routes.MapRoute(
name: "Area",
url: "",
defaults: new { area = "OnlineOrder", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
这将确认您的区域是 'OnlineOrder'
public ActionResult Index()
{
ViewBag.Message = RouteData.Values["area"];
return View();
}
谢谢
你有两个可能的选择
- 您可以更改默认路由
- 在您的家庭控制器的索引操作中执行重定向操作