首页 文章

运行api url时'/'应用程序中的服务器错误

提问于
浏览
0

我正在调用一个返回服务器错误的api http://169.38.100.206/sr/gsr?spn=NEWGEN-00097 .

无法找到该资源 . 说明:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用 . 请查看以下网址,并确保拼写正确 .

请求的URL:/ sr / gsr

我的路线配置是

public class RouteConfig {public static void RegisterRoutes(RouteCollection routes){routes.IgnoreRoute(“ .axd / {* pathInfo}”);

routes.MapRoute(
            name: "AMMReport",
            url: "sr/gsr/{id}",
            defaults: new { controller = "SupervisorReport", action = "GetSupervisorReport", id = UrlParameter.Optional }
            );

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Login", action = "Login", id = UrlParameter.Optional });


        }
    }

我的问题实际上是这个api用于自动向客户端发送一个短信,就像这样

大家好,您今天有0/19人报告了0项活动 . 但是,19/19人没有报告任何活动,1人休假 . 点击http://169.38.100.206/sr/gsr?spn=NEWGEN-00097进行活动报告 . 我想在url中隐藏动作名称和控制器名称,即我已经给了sr和gsr.bt它没有用 . 话

说明:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用 . 请查看以下网址,并确保拼写正确 .

请求的URL:/ sr / gsr

1 回答

  • 0

    你应该提到位于App_Start文件夹中的WebApiConfig.cs中的api路由而不是App Route Config File.But如果你想在自定义控制器中调用一个动作,你可以在没有路由配置的情况下执行该操作 . 只需要在你要调用的方法上方添加 [HttpGet] . 但我建议创建一个WebApi控制器来处理应用程序中的所有api请求 .

    以下内容适用于您的问题

    [HttpGet]
        public IQueryable<SupervisorList> GetSupervisorReport()
        {
            return true;
        }
    

    Create New Api Controller

    • 右键单击“控制器”文件夹,然后选择“添加新项”

    • 从列表中选择Web API Controller,然后单击“添加”

    • 在API控制器中,您应该能够正确使用Api Methods.Mention方法类型使用注释,如 [HttpGet], [HttpPost] .

    • 在WebApiConfig.cs中更改

    config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    

    config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    

    这将使您能够创建自定义api方法

相关问题