【问题标题】:API Controller added to ASP.NET MVC web application doesn't seem to work添加到 ASP.NET MVC Web 应用程序的 API 控制器似乎不起作用
【发布时间】:2020-03-05 17:17:38
【问题描述】:

我有一个 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


    【解决方案1】:

    原来 API 控制器在不同的端口上提供服务。 -.-

    【讨论】:

      【解决方案2】:

      尝试在public IEnumerable&lt;string&gt; Get()上方添加[HttpGet]

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-11
        • 2018-05-19
        • 2017-04-28
        • 1970-01-01
        相关资源
        最近更新 更多