c# - 自定义路由 未找到与请求 URI 匹配的 HTTP 资源
问题描述
我的控制器看起来像这样
[RoutePrefix("api/foo")]
public class CustomUserHintsController : ApiController
{
private ApplicationDbContext db = new ApplicationDbContext();
[HttpPost]
[Route("bar")]
public async Task<IHttpActionResult> GetUserHints(string Id)
{
..................
我的 webconfig.cs 看起来像这样
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Configure Web API to use only bearer token authentication.
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
// Enforce HTTPS
config.Filters.Add(new LocalAccountsApp.Filters.RequireHttpsAttribute());
}
}
我做错了什么?
https://localhost:SOMEPORTNUMBER/api/foo/bar
返回错误
我已经检查了几个类似这样的帖子没有找到与请求 URI 匹配的 HTTP 资源
编辑: Global.asax.cs 看起来像这样,我的应用程序中没有 MVC 关键字
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
当我传入 Id 时,我得到 404 - 您正在寻找的资源已被删除
解决方案
根据评论,您缺少 id
推荐阅读
- java - 如何在 Windows CMD 中使用外部配置运行 Spring Boot?
- java - 使用 -Xlint 重新编译:未检查 java 中的详细错误
- git - 我正在将 git hub 存储库克隆到 Cpanel git 版本控制我收到 term 15 错误
- python - 使用 set_index 函数时出现语法错误
- arkit - 在 RealityKit 中可视化检测到的平面问题
- ansible - 在 yaml 文件中定义的主机上运行任务,而不是使用 ansible 进行清单
- emacs - 如果不立即向上移动,Emacs 26.3 滚动条拒绝向上移动
- git - 如何让两个签出的 git 存储库相互同步?
- python - 获取上面行的结果
- firebase - 在 Flutter 中使用 Firebase 连接到 Facebook 时令牌无效