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

无法隐式转换JToken到JValue:Visual Studio Web API报错修复问询

修复Web API Post接口返回数据库数组时的错误

嘿,我瞅了你的代码,发现几个小问题导致出错,咱们逐个解决:

  • 调用ToArray时漏了括号:ToArray是方法不是属性,得写成ToArray()才能正确把实体集合转换成数组。
  • 存储过程参数类型不匹配:data.SelectToken("pk")返回的是JValue类型,而你的存储过程SP_Brands_Get_By_Category肯定需要的是普通CLR类型(比如int、string),直接传JValue会导致参数不兼容,得把它转成对应类型。

修改后的完整代码

[HttpPost]
public IHttpActionResult getsub([FromBody] JObject data) {
    using (GaminBrainEntities entities = new GaminBrainEntities()) {
        // 这里假设pk是整数类型,根据你的实际情况改成string或其他类型
        var categoryId = data.SelectToken("pk").Value<int>();
        // 正确调用ToArray()方法
        var result = entities.SP_Brands_Get_By_Category(categoryId).ToArray();
        return Ok(result);
    }
}

额外提示

  • 如果调试时发现还是拿不到pk的值,可以检查请求体的JSON格式是否正确,确保pk字段存在且拼写无误。
  • 要是存储过程的参数名和你传入的不一致,也会导致调用失败,记得核对存储过程的定义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:39:17