我很难用浏览器或PostMan运行API。问题是路径,所以我得到404错误。
这是路径:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
WebAPIConfig:
public static void Register(HttpConfiguration config)
{
config.EnableCors();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "v{version}/{controller}/{action}/{id}",
defaults: new {id = RouteParameter.Optional});
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
config.MessageHandlers.Add(new AuthHandler());
}
这是我需要运行的控制器方法:
public class BankViewerController : ApiController
{
[HttpGet]
public List<BuilderList> GetBuilderList()
{
//......
}
}
我尝试的路径是:
http://localhost:62815/BankViewerController/GetBuilderList
它甚至没有到达方法的第一行,它给了我404错误,所以我很确定它是Path。
答案 0 :(得分:3)
给定路线模板:
routeTemplate: "v{version}/{controller}/{action}/{id}",
您调用了与模板
不匹配的错误网址http://localhost:62815/BankViewerController/GetBuilderList
你需要像
这样的东西http://localhost:62815/v1/BankViewer/GetBuilderList
调用URL时从控制器名称中排除Controller
。这是一个惯例。