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
Asp.net mvc 如何在MVC应用程序中使用URL参数作为密钥?_Asp.net Mvc_Asp.net Mvc Routing_Url Routing - Fatal编程技术网

Asp.net mvc 如何在MVC应用程序中使用URL参数作为密钥?

Asp.net mvc 如何在MVC应用程序中使用URL参数作为密钥?,asp.net-mvc,asp.net-mvc-routing,url-routing,Asp.net Mvc,Asp.net Mvc Routing,Url Routing,在我的MVC应用程序中,RouteConfig包含以下代码(默认情况下): 当用户点击我的网站(abc.com)或键入abc/Home/Index,它会调用Home/Index。问题是我想用钥匙。我的意思是,如果用户输入abc/someKey或abc/Home/Index/someKey它应该转到Home/Index,在那里我可以访问该键。它在abc/Home/Index/someKey情况下工作良好,但在abc/someKey情况下失败,并给出异常。有没有其他方法可以获得该功能 因为如果使用a

在我的MVC应用程序中,RouteConfig包含以下代码(默认情况下):


当用户点击我的网站(abc.com)或键入abc/Home/Index,它会调用Home/Index。问题是我想用钥匙。我的意思是,如果用户输入abc/someKeyabc/Home/Index/someKey它应该转到Home/Index,在那里我可以访问该键。它在abc/Home/Index/someKey情况下工作良好,但在abc/someKey情况下失败,并给出异常。有没有其他方法可以获得该功能

因为如果使用
abc/someKey
它试图在
someKeyController
上查找方法名
Index
。你需要创建特定的路线我知道这一点。但是我想更改路由文件以获得所需的内容。我有数千个键&当然不能实现那么多控制器@StephenMuecket您拥有的键数与此无关(您只需将值作为参数传递)。但是您永远无法仅使用
/abc/someKey
您至少需要路由中的控制器名称。在这种情况下,如何创建特定路由@StephenMueckeIt取决于您想做什么,但路线需要区分
abc/someKey
无法工作,因为它正在查找
someKeyController
。您可以执行
abc/Home/someKey
,让您始终转到
HomeController
Index
方法。但是abc/Home/Index/someKey的问题是什么呢?
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{key}",
            defaults: new { controller = "Home", action = "Index", key= UrlParameter.Optional }
        );
    }