首页 > 解决方案 > 我无法在返回行中将 ActionResult 方法的结果转换为 JsonResult。我在 Visual Studio 2019 中遇到错误

问题描述

我是 C#、ASP.NET Core 和 LINQ 的新手。我一直在研究一种用于自动完成的操作方法。我只是在 Razor 页面 C# 上工作。我无法复制许多不同的返回ActionResultJSON 的代码示例:

public ActionResult SwordSearch(string term)
{ 
    var searchResult = _context.SMReferenceDB
                               .Where(Swordmakers => Swordmakers.LastName.Contains(term))
                               .Select(Swordmakers => Swordmakers.LastName)
                               .ToList();

    return JsonResult(searchResult, JsonRequestBehavior.AllowGet);
}

在 Visual Studio 中,我在以下位置收到此错误JsonResult

错误 CS 1955 不可调用的成员 'JsonResult' 不能像方法一样使用。

我已经尽我所能,我去了许多 Razor 和 MVC 的自动完成示例,它们都使用JsonResultor JSON。我有所有的参考资料和 NuGet 包。这似乎是确保您的结果以 JSON 格式返回的一种正常方式。

由于此错误,我无法构建解决方案,我还复制并粘贴了代码示例,并在 VS 中得到相同的红色下划线错误。感谢您的帮助。我很困惑,在这条线上工作了几个小时。

标签: c#asp.netasp.net-corerazor

解决方案


与控制器上用于返回 ActionResults 之类的其他一些辅助方法不同,orOk是一种类型,而不是一种方法。您需要创建一个新的来返回它,如下所示:NotFoundJsonResultJsonResult

return new JsonResult(searchResult);

我们省略了JsonRequestBehaviorinasp.net 核心,因为它已被弃用。您可以在此处选择传入自定义序列化程序设置。

您还应该能够调用控制器的Json方法。

return Json(searchResult);

推荐阅读