c# - 调用 ApiController 方法时找不到资源
问题描述
当我尝试调用 api 控制器时得到 404。但是当我尝试调用 Controller 方法时它工作正常。请帮助并让我知道是否需要任何信息。
TPServicesAPIController.cs:-
using AgentVartualOffice.Models.LogIn;
using System.Web.Mvc;
using AgentVartualOffice.Models;
using Newtonsoft.Json;
using System.Text;
namespace AgentVartualOffice.Controllers.TPServices
{
public class TPServicesAPIController : ApiController
{
public string Myauth()
{
return "True";
}
}
}
Global.asax.cs:-
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using System.Web.Http;
namespace AgentVartualOffice
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
GlobalFilters.Filters.Add(new HandleErrorAttribute());
}
}
}
Invoke url:
http://localhost:61868/TPServicesAPI/Myauth
解决方案
您可能调用了错误的 URL。
默认的基于 Web API 约定的路由通常以api
public static class WebApiConfig {
public static void Register(HttpConfiguration config) {
// Attribute routing.
config.MapHttpAttributeRoutes();
// Convention-based routing.
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}", //<<--- default web API route template
defaults: new { id = RouteParameter.Optional }
);
}
}
并且除非路由模板已更改,否则不要使用操作名称。
routeTemplate: "api/{controller}/{action}/{id}"
所以我建议你检查你的 API 配置并相应地更新被调用的 URL。
例如,通过调用:api/TPServicesAPI/Myaut
推荐阅读
- python - 检查两个 pyomo 表达式是否相同
- python - pyinstaller 找不到自定义导入的模块
- css - 在构建期间使用 webpack 将 Scss 变量转换为 css 变量
- github - 有没有办法建议对 PR 进行编辑?
- java - 我无法将插件添加到我的服务器,为什么?
- vertical-alignment - 在 TailwindCss 中,如何将按钮放在具有不同内容高度的并排 div 的底部
- javascript - 如何在具有 1 个对象的数组上使用 .some() 方法?
- windows - 如何创建条件右键菜单选项?类似于 Tortoise SVN 或 Tortoise Git
- mysql - 如何在 MySQL 中使用 Max 关键字获取正确的行
- python - 如何制作离线钱包并为参加 django 锦标赛添加资金