C# 在控制器上未找到任何操作';住宅旅游';与请求匹配。-MVC4 web api

C# 在控制器上未找到任何操作';住宅旅游';与请求匹配。-MVC4 web api,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,我已经在MVC4中创建了一个web api。我的控制员是—— [HttpPost] public string signIn(string socialId, string email) { try { using (TourismModelContainer db = new TourismModelContainer()) { var user = (from l

我已经在MVC4中创建了一个web api。我的控制员是——

 [HttpPost]
    public string signIn(string socialId, string email)
    {
        try
        {
            using (TourismModelContainer db = new TourismModelContainer())
            {
                var user = (from log in db.UserDetails
                            where ((log.FacebookId == socialId || log.GoogleId == socialId) && log.IsActive==true)
                            select new { log.Id, log.Mobile, log.Gender, log.Country }).FirstOrDefault();
                if (user != null)
                {
                    string json = new Utills().ObjectToJson(user); ;
                    if (email == null || email == "")
                    {
                        return json;
                    }
                    else
                    {
                        bool isEmail = db.UserDetails.Where(o=>o.IsActive==true).Any(obj => obj.Email == email);
                        if (isEmail)
                            return "1";
                        else
                            return json;
                    }
                }
                else
                {
                    return "-1";
                }
            }
        }
        catch (Exception ex)
        {
            return "";
        }
    }
我的WebApiConfig.cs文件是

 public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
我的路线配置是-

 public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "api/{controller}/{action}/{id}",
            defaults: new { id = UrlParameter.Optional }
        );
    }
但是当我调用这个登录服务时,我得到以下错误-

{ “消息”:“未找到与请求URI“”匹配的HTTP资源。”, “MessageDetail”:“在控制器‘Uptourim’上未找到与请求匹配的操作。” }

请帮我解决这个问题。

试试这个:

HttpPost
期间,您只能发送一个参数来执行操作。因此,将类中的两个参数组合起来并发送该对象非常简单和方便。我创建了一个
Demo
类。我的控制器是
CustomController


确保控制器的名称为(UpTourismController)是其UpTourismController。请发布控制器类本身的代码(使用单个空操作,没有理由显示与路由无关的代码墙)、对RegisterRoutes/Register方法的实际调用以及如何调用该方法(无论您使用什么来构造post请求)。我正在使用postman来发出post请求。我的路由和webapi配置如上所述。如果您的控制器和API路由指向同一路径*API*/{controller}/{action}/{id},那就不好了在HttpPost期间,您只能向操作发送一个参数-这根本不是真的。我认为这是一条经验法则-@Rob@Rob:我以前也像你一样相信,但当谈到Web Api 1.0路由的糟糕实现时,我正在失去信心。