我的路由有问题: 我的控制器中有这种方法:
[HttpGet]
public JsonResult GetCase(CustomIdentity currentUser, string objectType, Guid objectId)
在我的路线中
r.Match("CTRL/{id}", "CTRL", "details");
r.Match("CTRL/GetCase", "CTRL", "GetCase");
问题是当我想对我的方法启动GET时: 我只能用
做到这一点http://a.com/CTRL/GetCase/EE5014C2-C4AA-44E2-80F9-A23D01317790?objectType=123&objectId=1E5014C2-C4AA-44E2-80F9-A23D01317790
但我需要
http://a.com/CTRL/GetCase?objectType=123&objectId=1E5014C2-C4AA-44E2-80F9-A23D01317790
我的代码出了什么问题?
答案 0 :(得分:1)
切换路线设置的顺序。第一个URI ......
http://a.com/CTRL/GetCase/EE5014C2-C4AA-44E2-80F9-A23D01317790?objectType=123&objectId=1E5014C2-C4AA-44E2-80F9-A23D01317790
匹配您设置的CTRL/{id}
路由,其中URI中的GetCase
满足{id}模板参数。约定使用它在映射路径时找到的第一个匹配路由。
您需要更改设置路线的顺序。从你所展示的,那将是
r.Match("CTRL/GetCase", "CTRL", "GetCase");
r.Match("CTRL/{id}", "CTRL", "details");