具有城市和国家/地区 URL 的 MVC 自定义属性路由
MVC Custom Attribute routing with City and Country URL
我想在 MVC 中创建自定义属性路由,我希望我的 URL 像这样:
www.domain.com/in/best-restaurants-in-india // FOR COUNTRY INDIA
和
www.domain.com/in/best-restaurants-in-new-delhi-india // for COUNTRY INDIA CITY DELHI
为此我尝试使用这个
[Route("{isocountry}/best-restaurants-in-{country}")]
[Route("{isocountry}/best-restaurants-in-{city}-{country}")]
但这给出了一个模棱两可的路由问题
我知道这是可能的,因为我在 php 中看到其他网站使用相同的方法,但不知道如何使用 MVC。
请给出实现这个的正确想法?
你得到错误是因为当你输入
www.domain.com/in/best-restaurants-in-india
它匹配路线 in-{country}
然后你输入
www.domain.com/in/best-restaurants-in-new-delhi-india
它匹配两个路由,因为 delhi-india
是一个字符串,并且可以同时是这两个路由,这使得它雄心勃勃。
你可以通过在路由属性中应用 Order
来实现这一点,因为你的路由应该从最具体到最通用来定义,所以你的路由应该像这样
[Route("{isocountry}/best-restaurants-in-{country}",Order = 2)]
[Route("{isocountry}/best-restaurants-in-{city}-{country}",Order = 1)]
首先它会检查特定的路线,然后是一般定义的路线。
我想在 MVC 中创建自定义属性路由,我希望我的 URL 像这样:
www.domain.com/in/best-restaurants-in-india // FOR COUNTRY INDIA
和
www.domain.com/in/best-restaurants-in-new-delhi-india // for COUNTRY INDIA CITY DELHI
为此我尝试使用这个
[Route("{isocountry}/best-restaurants-in-{country}")]
[Route("{isocountry}/best-restaurants-in-{city}-{country}")]
但这给出了一个模棱两可的路由问题
我知道这是可能的,因为我在 php 中看到其他网站使用相同的方法,但不知道如何使用 MVC。
请给出实现这个的正确想法?
你得到错误是因为当你输入
www.domain.com/in/best-restaurants-in-india
它匹配路线 in-{country}
然后你输入
www.domain.com/in/best-restaurants-in-new-delhi-india
它匹配两个路由,因为 delhi-india
是一个字符串,并且可以同时是这两个路由,这使得它雄心勃勃。
你可以通过在路由属性中应用 Order
来实现这一点,因为你的路由应该从最具体到最通用来定义,所以你的路由应该像这样
[Route("{isocountry}/best-restaurants-in-{country}",Order = 2)]
[Route("{isocountry}/best-restaurants-in-{city}-{country}",Order = 1)]
首先它会检查特定的路线,然后是一般定义的路线。