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
相关产品推荐
相关产品推荐

