簡體   English   中英

Web API問題

[英]Issue with web api

我正在使用ASP.Net Web API's。我已經在controllers文件夾中創建了一個名為api的文件夾,然后在該api文件夾中創建了一個Api控制器。 在管理控制器中,我僅放置了以下代碼即可檢查api是否正常工作。

public class AdminController : ApiController
{
    DBEntities _context;
    public AdminController()
    {
        _context = new DBEntities();
    }
    [HttpGet]
    public IEnumerable<string> GetUsers()
    {

        return new string[] { "Muhammad","Ali"};
    }
}

然后從瀏覽器中我調用http:// localhost:57368 / api / admin,但是它給我“找不到資源”,並帶有http 404錯誤代碼。它應該至少返回JSON結果,但給出此錯誤。 非常感謝您的幫助。 當我轉到Chrome中的“網絡”標簽時,它顯示了請求的以下詳細信息: 點擊查看錯誤詳情

protected void Application_Start()
    {
        GlobalConfiguration.Configure(config =>
        {
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        });
        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
   }

您的global.asax.cs應該如下所示

[RoutePrefix("api/admin")]
public class AdminController : ApiController
{
    DBEntities _context;
    public AdminController()
    {
        _context = new DBEntities();
    }
    [Route("GetUsers")]
    [HttpGet]
    public IEnumerable<string> GetUsers()
    {

        return new string[] { "Muhammad","Ali"};
    }
}

網址: http:// localhost:57368 / api / admin / GetUsers

您應該使用“ RoutePrefix”和“ Route”屬性。 API應該知道如何將傳入請求導航到操作。 此屬性可以幫助您。 不要忘記使用“ System.Web.Http”添加此命名空間。

using System.Web.Http

[RoutePrefix("api/admin")]
public class AdminController : ApiController
{
    DBEntities _context;
    public AdminController()
    {
         _context = new DBEntities();
    }
    [HttpGet]
    [Route("GetUsers")]
    public IEnumerable<string> GetUsers()
    {

        return new string[] { "Muhammad","Ali"};
    }
}

在Global.asax中,我使用GlobalConfiguration.Configure(WebApiConfig.Register)注冊了Api,但問題是由於將MVC置於優先位置,我將其放置在底部,當我調用api / admin時,它給出了錯誤,指出沒有找到資源是因為MVC在行動。 我在頂部和Gloabl.asax的ApplicationStart()中添加了此GlobalConfiguration.Configure(WebApiConfig.Register),它運行良好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM