我对Web Api中的路由配置有一个非常简单的问题。
我的目标是将两种方法合并为一种。
http://nsa/wordpress/?page_id=16&cf_id=17
上面粘贴的代码有效。
当然,我已经阅读了一些关于自定义路线的教程,但是我没有成功。字符串元素是可选的。
这是我在RouteConfig中尝试过的:
[HttpGet]
[Route("foo/bar")]
public HttpResponseMessage TestMethod()
{
//TODO: Implement
return new HttpResponseMessage(HttpStatusCode.OK);
}
[HttpGet]
[Route("foo/bar/{element}")]
public HttpResponseMessage AnotherTestMethod(string element)
{
//TODO: Implement
return new HttpResponseMessage(HttpStatusCode.OK);
}
感谢您提供任何提示或帮助。
答案 0 :(得分:1)
您可以为element
指定默认值。并且在route参数中将变量声明为可为空。这会将参数视为可选参数。
[Route("foo/bar/{element?}")]
public HttpResponseMessage TestMethod(string element = null)
答案 1 :(得分:0)
为什么不使用以下一种方法。
[HttpGet]
[Route("foo/bar/{string element}")]
public HttpResponseMessage TestMethod(string element)
{
//TODO: Implement
return new HttpResponseMessage(HttpStatusCode.OK);
}
如您所知,无论是否设置了元素的参数,都将调用TestMethod()。