Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC4路由-到同一位置的多条路由_Asp.net Mvc_C# 4.0_Asp.net Mvc 4_Asp.net Mvc Routing_Single Page Application - Fatal编程技术网

Asp.net mvc ASP.NET MVC4路由-到同一位置的多条路由

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

我正在设置一个单页应用程序(SPA),并希望设置,目前有两条路线。例如:

  • 路线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.
    }
}