我想和
api/prefix/{controller}/{id}/{param}而不是
api/prefix?Controller={controller}&Id={id}&Param={param}换句话说,我更喜欢没有名称/值参数的URL。
控制器的定义如下:
/// <summary>
/// Employee API
/// </summary>
[System.Web.Mvc.RoutePrefix("api/employee")]
public class EmployeeController : ApiController
{
///<summary>
/// Returns a collection of employees from a supplied CSV of EmployeeIds
/// </summary>
/// <paramref name="EmployeeIds">CSV of EmployeeIds. Pass "ALL" to include all employees. Defaults to "ALL".</paramref>
/// <paramref name="PageSize">Number of rows to return. Defaults to all rows</paramref>
/// <paramref name="PageNumber">Number of the page to return. Defaults to Page 0</paramref>
/// <returns>IEnumerable<Employee></returns>
[System.Web.Mvc.Route("id/{EmployeeIDs:alpha?}/{PageSize:int?}/PageNum:int?}")]
public IHttpActionResult getEmployeesByIds(string EmployeeIds = "ALL",int PageSize = 0,int PageNumber = 0)
{
EmployeeDb db = new EmployeeDb();
IEnumerable<Employee> e = db.getEmployeesById(EmployeeIds, PageSize, PageNumber);
return Ok(e);
}
}我如何控制URL格式的方式?
发布于 2017-03-01 15:22:18
您使用的是System.Web.Mvc.RoutePrefix和System.Web.Mvc.Route属性,但是您是从ApiController继承的,因此这是Web,而不是ApiController控制器。你能试着转到System.Web.Http.RoutePrefix和System.Web.Http.Route吗?
发布于 2017-03-08 06:08:45
System.Web.Http 1用于Web;System.Web.Mvc 1用于以前的MVC版本。MVC是web应用程序,Web是HTTP服务。
RoutePrefix应该从System.Web.Http继承。
由于ApiController来自System.Web.Http,它无法解决您的路由问题。
这个博士有很好的属性路由信息。
https://stackoverflow.com/questions/42535037
复制相似问题