3 回答
TA贡献1804条经验 获得超7个赞
我已经进入MVC4世界了。
对于它的价值,我有一个SitesAPIController,并且我需要一个自定义方法,该方法可以这样称呼:
http://localhost:9000/api/SitesAPI/Disposition/0
最后一个参数使用不同的值来获取具有不同处置方式的记录。
最终为我工作的是:
SitesAPIController中的方法:
// GET api/SitesAPI/Disposition/1
[ActionName("Disposition")]
[HttpGet]
public Site Disposition(int disposition)
{
Site site = db.Sites.Where(s => s.Disposition == disposition).First();
return site;
}
而这在WebApiConfig.cs中
// this was already there
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
// this i added
config.Routes.MapHttpRoute(
name: "Action",
routeTemplate: "api/{controller}/{action}/{disposition}"
);
只要我将{disposition}命名为{id},我就一直遇到:
{
"Message": "No HTTP resource was found that matches the request URI 'http://localhost:9000/api/SitesAPI/Disposition/0'.",
"MessageDetail": "No action was found on the controller 'SitesAPI' that matches the request."
}
当我将其重命名为{disposition}时,它开始工作。因此,显然参数名与占位符中的值匹配。
- 3 回答
- 0 关注
- 1176 浏览
添加回答
举报