2

İki Wep API'm var. Örneğin bir CRUD işlemi yaptım. Müşteri. Ben bir yöntemi başka Benzer Web API inşa ve talep ettiğinde O gösterir:Tek bir API'dan Arama Yöntemleri tamamlandı, ancak yanmıyor İkinci API'da Hata bulunamıyor

{...} Mesaj: "Hayır HTTP kaynak isteği URI http://localhost:23995/Product/Insert' eşleştiğini tespit edildi."

MessageDetail: Burada

benim JS Yöntemi Çağırıyor "denetçi ismini veren rota yok bulunmuştur için maç isteği URI '[] burada yukarıdaki gibi [aynı link]'":

$scope.Insert = function() {  

    $http({ 
     method: 'post', 
     url: 'http://localhost:23995/Product/Insert', 
     data: JSON.stringify($scope.Product) 
    }).then(function (response) { 
     alert("chec"); 

    }); 
} 
tedarikçisi Denetleyicisi Ürün Kontrolörü

// Insert 
[HttpPost] 
[Route("{controller}/Insert")] 
public string Insert([FromBody] Product newProd) { 
    newProd.Insert(); 
    return newProd.DbResponse; 
} 

yılında

// Insert 
[HttpPost] 
[Route("{controller}/Insert")] 
public string Insert([FromBody] Product newProd) { 
    newProd.Insert(); 
    return newProd.DbResponse; 
} 
+0

// takın [HttpPost] [Route ("{controller}/Insert")] public string Yerleştir ([FromBody] Ürün newProd) { newProd.Insert(); newProd.DbResponse döndürür; satıcılar Kontrol olarak } // takın [HttpPost] [Yol ("{kontrol}/Ekle")] ortak dizi Eklemek ([FromBody] Ürün newProd) { newProd.() Yerleştirin; newProd.DbResponse döndürür; } – user3634908

+0

Yorumunuzu değil, yorumunuzu geliştirmek için düzenlemeyi kullanmalısınız. – Nkosi

cevap

0

Zaten özellik rotanızın etkin olduğunu varsayarsak.

Attribute Routing in ASP.NET Web API 2

, nitelik yönlendirmeyi etkinleştirmek yapılandırma sırasında MapHttpAttributeRoutes çağırın. Bu uzantı yöntemi System.Web.Http.HttpConfigurationExtensions sınıfında tanımlanmıştır.

using System.Web.Http; 

namespace WebApplication 
{ 
    public static class WebApiConfig 
    { 
     public static void Register(HttpConfiguration config) 
     { 
      // Web API routes 
      config.MapHttpAttributeRoutes(); 

      // Other Web API configuration not shown. 
     } 
    } 
} 

ve bu gibi görünmelidir

http://localhost:23995/Product/Insert 

Ürününüz denetleyicisinde hatayı alıyorsanız rotayı verilen varsayarak.

[RoutePrefix("product")] 
public class ProductController : ApiController { 
    // ... other code removed for brevity 

    // Insert 
    // eg: POST /product/insert 
    [HttpPost] 
    [Route("insert")] 
    public string Insert([FromBody] Product newProd) {...} 
} 

ve tedarikçi kontrolörü çok benzer görünecektir
[RoutePrefix("supplier")] 
public class SupplierController : ApiController { 
    // ... other code removed for brevity 

    // Insert 
    // eg: POST /supplier/insert 
    [HttpPost] 
    [Route("insert")] 
    public string Insert([FromBody] Product newProd) {...} 
} 

JavaScript sonra düzgün istenilen yöntemleri çağırmak mümkün olmalıdır çağıran Ürün Kontrolörü olarak

0

Insert adında bir yöntemle "ProductController" adında bir denetleyiciniz var mı?

Sizin için eksik olan şey bu gibi görünüyor.

+0

Cevabınız için teşekkür ederiz, Evet Ürün Kontrolörüm var ve yöntemleri var. İki kontrolörleri ProductController ve SupplierController benim sorunum // takın [HttpPost] [Rota ("{controller}/InsertProduct")] kamu dizi Eklemek ([FromBody] Ürün newProd) { newProd.Insert kaynaklanmaktadır(); newProd.DbResponse döndürür; } – user3634908

İlgili konular