我有这个:
public class RuleController : ApiController
{
private readonly IRuleManager _ruleManager;
// GET: api/Rule/guid
[HttpGet]
public IHttpActionResult GetRule(Guid id)
{
var rules = _ruleManager.GetRulesById(id);
return Ok(rules);
}
[HttpGet]
public async Task<IHttpActionResult> GetRuleNew(string locale, string pno, string modelYear)
{
// do cool stuff with my params
}
}
Run Code Online (Sandbox Code Playgroud)
我的路线配置:
config.Routes.MapHttpRoute("DefaultApiWithId", "Api/{controller}/{id}", new { id = RouteParameter.Optional }, new { id = @"\d+" });
config.Routes.MapHttpRoute("DefaultApiWithAction", "Api/{controller}/{action}");
config.Routes.MapHttpRoute("DefaultApiGet", "Api/{controller}", new { action = "Get" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) });
config.Routes.MapHttpRoute("DefaultApiPost", "Api/{controller}", new { action = "Post" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Post) });
config.Routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
Run Code Online (Sandbox Code Playgroud)
调用我的路线:
https://localhost:44328/api/rule/GetRuleNew?locale=e?pno=2?modelYear=1
Run Code Online (Sandbox Code Playgroud)
我得到:
"Message": "未找到与请求 URI 'https://localhost:44328/api/rule/GetRuleNew?locale=e?pno=2?modelYear=1' 匹配的 HTTP 资源。", "MessageDetail": "在控制器“规则”上找不到与请求匹配的操作。”
我缺少什么?
你尝试过用这个来代替吗?
https://localhost:44328/api/rule/GetRuleNew?locale=e&pno=2&modelYear=1
Run Code Online (Sandbox Code Playgroud)
基本上只需使用 a &(而不是 a ?)作为第二个和后续查询参数......
| 归档时间: |
|
| 查看次数: |
35 次 |
| 最近记录: |