Asp.net mvc ASP.NET MVC4路由-到同一位置的多条路由
我正在设置一个单页应用程序(SPA),并希望设置,目前有两条路线。例如:Asp.net mvc ASP.NET MVC4路由-到同一位置的多条路由,asp.net-mvc,c#-4.0,asp.net-mvc-4,asp.net-mvc-routing,single-page-application,Asp.net Mvc,C# 4.0,Asp.net Mvc 4,Asp.net Mvc Routing,Single Page Application,我正在设置一个单页应用程序(SPA),并希望设置,目前有两条路线。例如: 路线1:http://localhost-这是需要身份验证的默认路由(管理区域) 路线2:http://localhost///-这不需要身份验证(仅查看) 在管理区域,他们设置了和,因此我知道我需要在MVC4路由中设置此配置,但我不清楚我将如何处理此问题 另一个警告是,如果未在URL中输入,它将显示该客户端的搜索页面。MVC中路由的一个优点是能够将任何内容路由到任何地方,而不管URL是否匹配控制器和操作方法的命名。R
- 路线1:
-这是需要身份验证的默认路由(管理区域)http://localhost
- 路线2:
-这不需要身份验证(仅查看)http://localhost///
和
,因此我知道我需要在MVC4路由中设置此配置,但我不清楚我将如何处理此问题
另一个警告是,如果未在URL中输入
,它将显示该客户端的搜索页面。MVC中路由的一个优点是能够将任何内容路由到任何地方,而不管URL是否匹配控制器和操作方法的命名。RouteConfig允许我们注册特定路线以满足这一需求。让我来告诉你如何才能做到这一点
路线1:
这由路由配置中的默认路由处理
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home",
action = "Index",
id = UrlParameter.Optional });
点击http://localhost
将带您进入主页
控制器和索引
操作方法
路线2:
我们可以设置一条路线,以满足http://localhost/
和http://localhost//
点击任一http://localhost/bacon
或http://localhost/bacon/smokey
将带您进入主页
控制器和客户端
操作方法。请注意,title
是一个可选参数,这就是我们如何让两个URL使用相同的路由
为了在控制器端工作,我们的操作方法Client
需要如下所示
public ActionResult Client(string client, string title = null)
{
if(title != null)
{
// Do something here.
}
}
多好的解释啊。谢谢你!我相信这会让我在将来遇到更多的问题。这是否也适用于Web API路由?哪里不使用MapRoute而只使用MapHttpRoute?是的,这也可以用于MapHttpRouteOk,我已经实现了这一点,但现在它与我的登录管理冲突。它调用/Account/Logoff,其格式与上述相同。是否有一种方法可以将所有帐户请求传递到它的特定区域?您只需要为帐户控制器创建一个特定的路由。例如routes.MapRoute(“Account”、“Account/{action}”、new{controller=“Account”});
public ActionResult Client(string client, string title = null)
{
if(title != null)
{
// Do something here.
}
}