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

ASP.NET Core 6 MVC控制器无法接收AJAX数据,报500错误

问题分析与解决

你的500错误核心原因是AJAX请求的参数格式不正确,导致ASP.NET无法将传入的id绑定到控制器的Guid参数上。

错误点

AJAX的data字段直接传入了id值,而GET请求需要以键值对的形式传递参数,控制器才能识别到名为id的参数。

修正后的AJAX代码

const handleDetails = (id) => {
  $.ajax({
    type: 'GET',
    url: '/Monsters/Details',
    data: { id: id }, // 改为键值对格式,确保参数名与控制器参数匹配
    success: function (result) {
      alert('Successfully received Data ');
      console.log(result);
    },
    error: function () {
      alert('Failed to receive the Data');
      console.log('Failed ');
    }
  })
}

额外检查项

  • 确认传入的id是有效的Guid格式(例如"550e8400-e29b-41d4-a716-446655440000"),无效格式会直接导致参数绑定失败。
  • 若路由配置了自定义模板,可直接在URL中拼接参数,效果与修改data字段一致:url: '/Monsters/Details?id=' + id。
  • 如果需要返回JSON数据而非View页面,可修改控制器方法返回JsonResult:
public async Task<IActionResult> Details(Guid id)
{
    var monster = await _monstersData.GetMonsters(id);
    return Json(monster);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:45:39