WebApi中自定义路由可以通过Route来实现,具体如下。
我定义了AccountController继承自ApiController,Route是这样写的,具体的代码如下:
public class AccountController : ApiController { [HttpGet] [Route("api/Account/Login")] public HttpResponseMessage Login() { IDictionary<String, Object> result = new Dictionary<String, Object>(); result.Add("userName", "codingwhy"); result.Add("password", "123456"); result.Add("age", 28); return ObjectToJson.toJson(result); } }
那么我们前台可以这么访问:http://localhost:6568/api/Account/Login
那么问题又来了,如果我的方法很多,每个都加上http:///api/Account/是不是觉得和麻烦?那么此时就需要用到RoutePrefix,我们在AccountController类最外层加上
[RoutePrefix("api/Account")]
就行了。具体代码如下:
[RoutePrefix("api/Account")] public class AccountController : ApiController { [HttpGet] [Route("Login")] public HttpResponseMessage Login() { IDictionary<String, Object> result = new Dictionary<String, Object>(); result.Add("userName", "codingwhy"); result.Add("password", "123456"); result.Add("age", 28); return ObjectToJson.toJson(result); } }
这样就能省好多代码了。