2016-06-10 87 views
0

從Web API調用get方法時出現以下錯誤。 這是我的控制器類。在webapi asp.net中,我收到以下錯誤。,響應狀態碼未指示成功404(未找到)

[RoutePrefix("api/AnnouncementController")] 
public class AnnouncementController : ApiController 
{ 
    // GET api/<controller> 
    [Route("{code}")] 
    [HttpGet] 
    public IEnumerable<EAnnouncement> Get(string code) 
    { 
     return AnnouncementC.getdata(code); 
    } 
    ... 
} 

這是我configuartion:

{ 
    public static void Register(HttpConfiguration config) 
    { 
     // Web API routes 
     config.MapHttpAttributeRoutes(); 
    } 
} 

public class Global : System.Web.HttpApplication 
{  
    protected void Application_Start(object sender, EventArgs e) 
    { 
     GlobalConfiguration.Configure(WebApiConfig.Register); 
    } 
} 

這裏我打電話讓method.But不會得到錯誤。請幫我

protected void Page_Load(object sender, EventArgs e) 
{ 
    string Jcode = (string)(Session["JCode"]); 

    GridView2.DataSource = addressBookGrid_GetData(Jcode); 
    GridView2.DataBind(); 
} 

public IQueryable<EAnnouncement> addressBookGrid_GetData(string code) 
{ 
    HttpClient client = new HttpClient(); 
    client.BaseAddress = new Uri("http://localhost:1146"); 
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 

    HttpResponseMessage response = client.GetAsync("api/AnnouncementController").Result; 
    response.EnsureSuccessStatusCode(); 

    List<EAnnouncement> addressBooks = response.Content.ReadAsAsync<List<EAnnouncement>>().Result; 

    return addressBooks.AsQueryable();  
} 
+0

粘貼調用api的代碼。 –

+0

它被添加上面。 – Hooriya

回答

1

將控制器的名字,同時呼籲

[RoutePrefix("api/Announcement")] 

HttpResponseMessage response = client.GetAsync("api/Announcement").Result; 

您的API methord期待一個參數傳遞參數一樣

client.GetAsync("api/Announcement/1").Result; 

[Route("api/Announcement/{code}")]在頂部此屬性裝飾服務你的行動方法

+0

仍然收到相同的錯誤。 – Hooriya

+0

你沒有將參數傳遞給api –

+0

該參數是字符串「code」,我怎麼能通過它? – Hooriya

相關問題