有人可以向我解释 asp.net 路由语法吗?

     2023-02-22     145

关键词:

【中文标题】有人可以向我解释 asp.net 路由语法吗?【英文标题】:Can someone explain asp.net routing syntax to me? 【发布时间】:2011-03-10 12:44:08 【问题描述】:

我在 Web 窗体方案中处理此代码:

  public static void RegisterRoutes(RouteCollection routes)
  

    Route r = new Route("*url", new MyRouteHandler());
    routes.Add(r);
    routes.IgnoreRoute("resource.axd/*pathInfo");
    routes.IgnoreRoute("resource.gif/*pathInfo");

  

首先,谁能告诉我 *pathInfo 的定义在哪里? http://msdn.microsoft.com/en-us/library/cc668201.aspx#url_patterns 并没有真正定义它。是否:

routes.IgnoreRoute("resource.axd/*pathInfo");

匹配

/c/xyz.axd and 
/b/c/xyz.axd and
/a/b/c/xyz.axd 

routes.IgnoreRoute("resource.axd");

只匹配

/xyz.axd

其次,在:

*url

* 是什么意思?以及整个表达是什么意思。有没有什么地方解释清楚了?

第三,我需要添加这些表达式以正确忽略路由的特定顺序吗?我知道 *url 是某种包罗万象的东西,如果 IgnoreRoutes 出现在它之前还是之后,例如

routes.IgnoreRoute("resource.axd/*pathInfo");
routes.IgnoreRoute("resource.gif/*pathInfo");
Route r = new Route("*url", new MyRouteHandler());
routes.Add(r);

【问题讨论】:

【参考方案1】:

我的 2 美分: 路线不是正则表达式。它只是组成路由的可变和静态组件,由段分隔(由斜线标识)。有一个特殊符号,最后一个变量中的星号,这意味着从这里开始,忽略段分隔符——斜杠。所以,

*url 

是最简单的路由,因为它意味着获取整个 URL,将其放入变量 'url' 中,然后将其传递给与该路由关联的页面。

controller/action/id

将第一段中的所有内容(直到第一个斜线)放入变量“controller”,将第一个和第二个 / 之间的所有内容放入变量“action”,以及第二个和第三个斜杠之间的所有内容(或结束)到变量'id'中。然后将这些变量传递到相关页面。

resource.axd/*pathInfo

在这里,将 .axd/ 之前的信息(并且不能有任何斜线!)放入“resource”,并将第一个 / 之后的所有内容放入“pathInfo”。由于这通常是一个ignoreRoute,所以不是将它传递给关联的页面,而是由Stop​​Handler处理,这意味着路由不会处理它,而是由非路由HttpHandler处理。

正如 bleevo 所说,路由按照添加到集合中的顺序执行。所以必须在处理通用路由之前添加 IgnoreRoute 。

这是马嘴:http://msdn.microsoft.com/en-us/library/cc668201.aspx

具体到您的示例,我会将 IgnoreRoute 线放在您的 Route 添加之上,因为您的路线实际上是一个包罗万象的。另外,请记住,仅当 gif 位于根目录中时才会忽略 .gif。

【讨论】:

【参考方案2】:

pathinfo 只是一个桶的标签。例如*pathinfo 表示将resource.axd/ 之后的所有内容放入路径信息中。

路由按照您在路由表中放置的顺序执行,因此如果您的第一个路由是一个捕获,那么其余的将永远不会执行。

【讨论】:

我上面的 pathInfo 示例正确吗?如果没有,你能重做它,所以它是正确的。我还是一头雾水。 您的示例看起来不错,也许您可​​以发布一条不起作用的路线,然后我可以对此发表评论。

有人可以向我解释一下:'create(email: emailArg = ) '吗?

】有人可以向我解释一下:\\\'create(email:emailArg=)\\\'吗?【英文标题】:Cansomeonepleaseexplainmethis:\'create(email:emailArg=)\'?有人可以向我解释一下:\'create(email:emailArg=)\'吗?【发布时间】:2019-11-2803:57:23【问题描述】:我还在学习JS。... 查看详情

有人可以向我解释为啥 L(长)必须在那里吗? [复制]

】有人可以向我解释为啥L(长)必须在那里吗?[复制]【英文标题】:CansomebodyexplaintomewhytheL(long)hastobethere?[duplicate]有人可以向我解释为什么L(长)必须在那里吗?[复制]【发布时间】:2016-11-1514:00:21【问题描述】:假设我声明... 查看详情

有人可以向我解释反向传播算法吗?

】有人可以向我解释反向传播算法吗?【英文标题】:Cansomebodypleaseexplainthebackpropagationalgorithmtome?【发布时间】:2012-10-1706:01:32【问题描述】:我最近在Coursera上完成了Ng教授的机器学习课程,虽然我喜欢整个课程,但我从来没有... 查看详情

有人可以向我解释为啥完美平方是 O(sqrt(n)) 的运行时间吗?

】有人可以向我解释为啥完美平方是O(sqrt(n))的运行时间吗?【英文标题】:CansomeoneexplaintometheruntimeofwhyPerfectSquaresisO(sqrt(n))?有人可以向我解释为什么完美平方是O(sqrt(n))的运行时间吗?【发布时间】:2018-12-1514:03:18【问题描述】... 查看详情

KeyStore、HttpClient 和 HTTPS:有人可以向我解释这段代码吗?

】KeyStore、HttpClient和HTTPS:有人可以向我解释这段代码吗?【英文标题】:KeyStore,HttpClient,andHTTPS:Cansomeoneexplainthiscodetome?【发布时间】:2010-04-2923:44:45【问题描述】:我试图了解thiscode中发生了什么。KeyStoretrustStore=KeyStore.getInstance... 查看详情

有人可以向我解释一起使用的 Math.random() 和宽度/高度吗?

】有人可以向我解释一起使用的Math.random()和宽度/高度吗?【英文标题】:CansomeoneexplainMath.random()andwidth/heightusedtogethertome?【发布时间】:2014-09-1012:29:16【问题描述】:例如,我正在尝试编写有关绘图的代码。必须初始化x和y位置... 查看详情

有人可以向我解释如何使用我的代码解决下面的参数错误吗?

】有人可以向我解释如何使用我的代码解决下面的参数错误吗?【英文标题】:Cansomeoneexplaintomehowtoresolvetheargumenterrorbelowwiththeuseofmycode?【发布时间】:2022-01-1703:59:47【问题描述】:这里的错误是位置参数错误,由于这行代码“Cu... 查看详情

有人可以向我解释一下逻辑回归中成本函数和梯度下降方程之间的区别吗?

】有人可以向我解释一下逻辑回归中成本函数和梯度下降方程之间的区别吗?【英文标题】:Cansomeoneexplaintomethedifferencebetweenacostfunctionandthegradientdescentequationinlogisticregression?【发布时间】:2012-11-1708:51:24【问题描述】:我正在学... 查看详情

有人可以像我五岁那样向我解释 chmod 权限吗? [关闭]

】有人可以像我五岁那样向我解释chmod权限吗?[关闭]【英文标题】:CansomebodyexplainmechmodpermissionslikeI\'mfive?[closed]【发布时间】:2014-03-1603:52:05【问题描述】:我不确定将我的文件权限设置为什么。我理解这个概念,以及如何去... 查看详情

有人可以用非流行语向我解释企业服务总线吗?

】有人可以用非流行语向我解释企业服务总线吗?【英文标题】:CansomeoneexplainanEnterpriseServiceBustomeinnon-buzzspeak?【发布时间】:2011-03-0414:22:24【问题描述】:我们的一些合作伙伴告诉我们,我们的软件需要与企业服务总线交互。... 查看详情

有人可以向我解释初始化 keras lstm 层中传递的激活参数和循环激活参数之间的区别吗?

】有人可以向我解释初始化keraslstm层中传递的激活参数和循环激活参数之间的区别吗?【英文标题】:Cansomeoneexplaintomethedifferencebetweenactivationandrecurrentactivationargumentspassedininitialisingkeraslstmlayer?【发布时间】:2017-12-1009:33:22【问题... 查看详情

有人可以向我解释这段代码吗?我需要了解 Python for 循环的人

】有人可以向我解释这段代码吗?我需要了解Pythonfor循环的人【英文标题】:CansomeoneexplainthispieceofcodetomeIneedpeoplewhoknowpythonforloops【发布时间】:2019-10-0815:31:55【问题描述】:a=[1,2,3,4,5]foriina:print(a)请解释为什么提到i,它在这段... 查看详情

有人可以解释一下 C 中 signal() 语法的含义吗? [复制]

】有人可以解释一下C中signal()语法的含义吗?[复制]【英文标题】:cansomeonepleaseexplainthemeaningofthesignal()syntaxinC?[duplicate]【发布时间】:2012-09-2417:35:45【问题描述】:可能重复:CdeclarationfromstandardsignalLibrary这里是语法链接的参考... 查看详情

有人可以向我解释 Dojo 的“dojo/on”模块中到底发生了啥吗?

】有人可以向我解释Dojo的“dojo/on”模块中到底发生了啥吗?【英文标题】:CouldsomebodyexplaintomewhatexactlyishappeningintheDojo\'s\'\'dojo/on"module?有人可以向我解释Dojo的“dojo/on”模块中到底发生了什么吗?【发布时间】:2016-08-1816:38:... 查看详情

有人可以解释 C++ FAILED 函数吗?

】有人可以解释C++FAILED函数吗?【英文标题】:Cansomeoneexplainthec++FAILEDfunction?【发布时间】:2008-12-1809:23:15【问题描述】:我见过很多将函数调用包装在FAILED()函数/方法/宏中的示例C++代码。有人可以向我解释这是如何工作的吗?... 查看详情

有人可以解释 Ruby 在块中使用管道字符吗?

】有人可以解释Ruby在块中使用管道字符吗?【英文标题】:CansomeoneexplainRuby\'suseofpipecharactersinablock?【发布时间】:2011-05-1312:59:30【问题描述】:有人可以向我解释一下Ruby在块中使用竖线字符吗?我知道它包含一个变量名称,它... 查看详情

有人可以简单地向我解释啥是有向无环图吗?

】有人可以简单地向我解释啥是有向无环图吗?【英文标题】:Cansomeoneexplaininsimpletermstomewhatadirectedacyclicgraphis?有人可以简单地向我解释什么是有向无环图吗?【发布时间】:2011-01-1800:46:09【问题描述】:有人可以简单地向我解... 查看详情

有人能解释一下这个功能吗

】有人能解释一下这个功能吗【英文标题】:cansomeoneexplainthisfunction【发布时间】:2019-10-2420:52:59【问题描述】:有人可以向我解释一下这个功能是如何工作的吗?varrandomize=function(length)vartext="";varpossible="123abc";for(vari=0;i<length;i... 查看详情