Skip to main content
 首页 » 编程设计

c#之运行 WebAPI 的路径

2024年02月27日32mq0036

我很难用浏览器或 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()); 
} 

这是我需要运行的 Controller 方法:

public class BankViewerController : ApiController 
{ 
    [HttpGet] 
    public List<BuilderList> GetBuilderList() 
    { 
        //...... 
    } 
} 

我尝试的路径是:

http://localhost:62815/BankViewerController/GetBuilderList 

它甚至没有到达方法的第一行,它给了我 404 错误,所以我很确定它是路径。

请您参考如下方法:

给定的路线模板:

routeTemplate: "v{version}/{controller}/{action}/{id}", 

您调用了与模板不匹配的错误 URL

http://localhost:62815/BankViewerController/GetBuilderList 

你需要类似的东西

http://localhost:62815/v1/BankViewer/GetBuilderList 

调用 URL 时从 Controller 名称中排除 Controller。这是一个约定。