You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MVC5无参数端点[Route]特性失效问题求助

解决MVC5无参数API端点404错误的方案

1. 修正路由定义的末尾斜杠

你的无参数端点路由末尾多了斜杠,导致请求地址匹配失败。修改路由属性,去掉末尾的/:

[HttpGet]
[Route("api/MyApplication/GetData")]
public ActionResult GetData()
{
    // 业务逻辑代码
}

2. 检查控制器路由前缀(若存在)

如果你的控制器上配置了[RoutePrefix],要避免路径重复:

[RoutePrefix("api/MyApplication")]
public class MyApplicationController : Controller
{
    [HttpGet]
    [Route("GetData")] // 这里只需写方法级路由,无需重复前缀
    public ActionResult GetData()
    {
        // 业务逻辑代码
    }
}

3. 确认WebApi路由配置生效

检查App_Start/WebApiConfig.cs,确保已启用属性路由,且配置在MVC路由之前:

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中确保先执行WebApi配置:

protected void Application_Start()
{
    GlobalConfiguration.Configure(WebApiConfig.Register);
    AreaRegistration.RegisterAllAreas();
    RouteConfig.RegisterRoutes(RouteTable.Routes);
}

4. 修复Angular代码的语法错误

你提供的Angular代码存在语法错误(多了一个右括号),修正后保证请求地址与路由一致:

const endpoint = 'http://localhost:0000/api/MyApplication/GetData';
return this.httpClient.get<JSON>(endpoint); 

内容的提问来源于stack exchange,提问作者Mable98

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 17:57:36