添加到ASP.NET MVC Web应用程序的API控制器似乎不起作用

问题描述 投票:0回答:2

我有一个ASP.NET MVC Web应用程序,正在尝试向其中添加API控制器,以便可以使用jQuery进行前端AJAX调用。

我在堆栈溢出中看到了几篇有关如何成功将API控制器成功添加到MVC项目的文章,尽管我已按照说明进行操作并尝试避免了常见问题(我已添加了必需的API依赖项并确保我的API路由在我的global.asax.cs中的MVC路由之前被初始化)

我的API控制器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace mywebsite.net.Controllers
{
    public class WebAPIController : ApiController
    {
        // GET api/<controller>
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }
    }
}

我的WebApi.config:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;

namespace mywebsite.net
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
}

我的Global.asax.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
using System.Web.Http;

namespace mywebsite.net
{
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();         
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            GlobalConfiguration.Configure(WebApiConfig.Register);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);          
        }
    }
}

[当我尝试发送我认为应该返回信息的GET请求时(在本例中为localhost:12345 / api / WebAPI之类的东西),什么都没有发生。浏览器/ http客户端只是卡住了。

c# asp.net asp.net-mvc asp.net-apicontroller
2个回答
0
投票

尝试将[HttpGet]放在public IEnumerable<string> Get()上方


0
投票

事实证明,API控制器是在其他端口上提供的。 -.-

© www.soinside.com 2019 - 2024. All rights reserved.