【发布时间】:2013-10-16 17:26:49
【问题描述】:
WebAPIConfig
config.Routes.MapHttpRoute(
name: "TestApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
我的 APIController:
public class TestController : ApiController
{
[HttpPost]
public string Send([FromBody] string id)
{
return "Got " + id;
}
}
这一切都很好,直到我更改 PARAM“ID”的NAME让我们在我的 API 过程中说“输入”。
我的(错误)假设
我的印象是,通过将 {xx} 括号放在路由表 url 上,我们实际上是在声明将在请求调用中使用任何第一个参数。
根据我的小样本,这似乎不是真的。
问题 1:
这是否意味着如果我有 10 个 API 方法(例如注册、登录、注销、发送电子邮件 ...)而不是标准默认值 get/post/put/delete ....我将需要 10 个单独的路由条目为每个一个?
问题 2:
另外,我们如何在路由表上表示需要一类 POCO 字段的 API?
我们是否在 MapHttpRoute 上声明了每个单独的字段名称?
【问题讨论】:
-
对于问题 1:您可以使用称为别名的功能例如:
([FromUri(Name = "id")] string input)...所以您仍然可以保持TestApi路由原样.. -
@KiranChalla 是在路由上还是在控制器上?
标签: c# asp.net-web-api asp.net-mvc-routing