在路由中使用C#关键字的Asp.NETMVC路由
我想创建一个使用参数作为URL一部分的路由 我遇到的问题是,当我创建默认值时,我不能将params用作保留的c#字 想知道是否有办法解决这个问题。(请参阅route中参数的使用,当用作默认值时,我会得到一个编译器错误:Expression expected) 以下是示例代码:在路由中使用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}",
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});奇怪,我试过了,但失败了。我一定是打错了。谢谢你的回复。我相应地更新了我的答案。