我想配置以下網址結構的通過路由屬性我控制器操作一個分離複姓毛坯:ASP.NET核心路由屬性 - ID和連字符
/products/12345-purest-green-widgets
這裏是我的路線它代表:
[Route(@"/products/{id:int}-{slug:regex([[\w\-]]+)}")]
public ContentResult Show(int id, string slug)
這不符合預期的路線,但它確實匹配:
/products/12345-purest
和如果我添加了其他任何與之不匹配的內容,我都會匹配一個單詞後的尾部連字符。
有趣的是,如果我換出字符串連字符(不是正則表達式的)爲/,它的全部工作正常:
[Route(@"/products/{id:int}/{slug:regex([[\w\-]]+)}")]
public ContentResult Show(int id, string slug)
匹配成功:
/products/12345/purest-green-widgets
如此看來跳到字符串文字連字符上。有任何想法嗎?
嘗試'[路線(「products/{id:int} - {* slug:regex([[\ w \ - ]] +)}」)]' – Nkosi
@Nkosi:這應該有效,但不會它會在過時之後做出任何限制和所有事情?不知道有關OPS具體要求 – Tseng
@Tseng我想明白你的'是什麼意思,但不會做出任何限制和淘汰後,隨後的一切嗎?'你能不能改寫呢?我不知道你的意思是什麼 – Nkosi