walkerwang

有时候我们定义了如{controller}/{action}/{id}之类的路由规则,但是后面还可能跟上一堆可能会有可能不会有,但是路由规则是一样的,如{controller}/{action}/{id}/{usertype}/{group},我们能把id, usertype, group通通设成option吗?几个“可选”的参数显然会打架,maproute提供了一种曲线的方法,就是{*catchName},这个catchName你可以自定义,也就是说,把所有自定义的片段都用一个变量捕获起来,实例如下:

routes.MapRoute("MyRoute", "{controller}/{action}/{id}/{*catchall}", new { controller = "Home", action = "Index", id = UrlParameter.Optional });
这个路由定义的匹配情况如下所示:

说的“曲线”的意思就是,看最后的Delete和Delete/Perm,路由表并没有把它们区别开来,只是简单地认为是一个参数。也就是说,把Delete和Perm的工作得由人工来处理了。

但至少,可以在Customer/List/这条路由规则上无限扩展了。

MSDN文档:http://msdn.microsoft.com/en-us/library/cc668201.aspx#handling_a_variable_number_of_segments_in_a_url_pattern

分类:

技术点:

相关文章:

  • 2022-02-09
  • 2022-01-19
  • 2022-02-24
  • 2021-08-23
  • 2021-12-29
  • 2021-12-08
  • 2021-05-25
猜你喜欢
  • 2021-06-15
  • 2022-12-23
  • 2021-09-03
  • 2021-11-15
  • 2021-10-06
  • 2021-10-08
  • 2021-11-12
相关资源
相似解决方案