2015-07-23 2 views
2

Я создал веб-АФИ в MVC 4. мой контроллер IS-никаких действий не было найдено на контроллере «UpTourism», что соответствует request.- 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 } 
     ); 
    } 

но когда я называю этот знак на службе, я получаю следующее error-

{ «Сообщение»: «Ни один HTTP ресурс не был найден соответствующий запрос URI„http://localhost:58851/api/UpTourism/signIn“.», «MessageDetail»: «Никаких действий не было найдено на контроллере„UpTourism“, который соответствует запросу. " }

Пожалуйста, помогите мне в этом.

+0

Убедитесь, что имя вашего контроллера (UpTourismController) – Ala

+0

Да Его UpTourismController. – VIVEK

+1

Просьба отправить код самого класса контроллера (с единственным пустым действием, нет причин показывать стену кода, не связанной с маршрутизацией), фактические вызовы методов RegisterRoutes/Register и способы вызова метода (что бы вы ни использовали для создания почтового запроса). –

ответ

2

Попробуйте это:

HttpPost Во время вы можете отправить только один параметр для action.So складчину два параметра, у вас есть внутри класса и отправки этого объекта гораздо проще и convenient.I создали Demo class.And мой контроллер CustomController.

enter image description here

enter image description here

enter image description here

+2

* Во время HttpPost вы можете отправить только один параметр в действие * - Это совсем не так. – Rob

+0

Я думал, что это было эмпирическое правило - @Rob –

+0

@Rob: Раньше я верил, как вы, но когда дело доходит до дрянной реализации маршрутизации Web Api 1.0, я теряю веру. –

Смежные вопросы