Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.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/0/asp.net-mvc/15.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
在路由中使用C#关键字的Asp.NETMVC路由_C#_Asp.net Mvc_Asp.net Mvc Routing - Fatal编程技术网

在路由中使用C#关键字的Asp.NETMVC路由

在路由中使用C#关键字的Asp.NETMVC路由,c#,asp.net-mvc,asp.net-mvc-routing,C#,Asp.net Mvc,Asp.net Mvc Routing,我想创建一个使用参数作为URL一部分的路由 我遇到的问题是,当我创建默认值时,我不能将params用作保留的c#字 想知道是否有办法解决这个问题。(请参阅route中参数的使用,当用作默认值时,我会得到一个编译器错误:Expression expected) 以下是示例代码: routes.MapRoute( name: "Default", url: "{controller}/{action}/{db}/{proc}/{params}",

我想创建一个使用参数作为URL一部分的路由

我遇到的问题是,当我创建默认值时,我不能将params用作保留的c#字

想知道是否有办法解决这个问题。(请参阅route中参数的使用,当用作默认值时,我会得到一个编译器错误:Expression expected)

以下是示例代码:

 routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{db}/{proc}/{params}",
            defaults: new { controller = "Data", action = "Index", db = UrlParameter.Optional, proc = UrlParameter.Optional, params = UrlParameter.Optional}
        );
正如MSDN建议的那样,可以通过在C#关键字前面加上@symbol来使用它们。 在您的情况下,请使用
@params
而不是
params

关键字是预定义的保留标识符,对编译器具有特殊意义。它们不能用作程序中的标识符,除非它们包含@作为前缀。例如,@if是有效标识符,但if不是,因为if是关键字

是否有任何特殊原因需要调用此变量
params

如MSDN所示,您可以通过在C#关键字前面加上@symbol来使用它们。 在您的情况下,请使用
@params
而不是
params

关键字是预定义的保留标识符,对编译器具有特殊意义。它们不能用作程序中的标识符,除非它们包含@作为前缀。例如,@if是有效标识符,但if不是,因为if是关键字


是否有任何特殊原因需要调用此变量
params

routes.maprote(名称:“Default”,url:{controller}/{action}/{db}/{proc}/{params}),默认值:new{controller=“Data”,action=“Index”,db=UrlParameter.Optional,proc=UrlParameter.Optional,@params=UrlParameter.Optional});奇怪,我试过了,但失败了。我一定是打错了。谢谢你的回复。我相应地更新了我的答案。routes.MapRoute(名称:“Default”,url:{controller}/{action}/{db}/{proc}/{params}”,默认值:new{controller=“Data”,action=“Index”,db=urlparmeter.Optional,proc=urlparmeter.Optional,@params=urlparmeter.Optional});奇怪,我试过了,但失败了。我一定是打错了。谢谢你的回复。我相应地更新了我的答案。