属性 'JsonResult.SerializerSettings' 必须是 'System.Text.Json.JsonSerializerOptions' 类型的实例。

8
我正在开发一个页面,用于显示所有请假类型选项的WebGrid(该模型包含id、LeaveType和status)。在我的控制器中,我编写了以下代码。但是当我运行代码时,我遇到了运行时错误。
“InvalidOperationException: 属性 'JsonResult.SerializerSettings' 必须是 'System.Text.Json.JsonSerializerOptions' 类型的实例。”
我尝试在Google上查找解决方法,但我不理解这个问题,我想寻求如何解决这个问题的建议。
谢谢。
public class OptLeaveTypeController : Controller
{
        private readonly theManagerContext _context;

        public OptLeaveTypeController(theManagerContext context)
        {
            _context = context;
        }

        public IActionResult Index()
        {
            return View();
        }

        public IActionResult GetLeaveTypes()
        {         
                var leaveTypes = _context.OptLeaveType.OrderBy(a => a.LeaveTypeId).ToList();
                return Json(new { data = leaveTypes }, System.Web.Mvc.JsonRequestBehavior.AllowGet);
        }
}

你正在使用 .NET Core 3.1 吗? - Ashiquzzaman
我正在使用 .NET Core 3.0。谢谢。 - George
1个回答

8

1) .NET CORE MVC:-

    public IActionResult GetLeaveTypes()
    {         
            var leaveTypes = _context.OptLeaveType.OrderBy(a => a.LeaveTypeId).ToList();
            return Json(new { data = leaveTypes });
    }

或者

    public IActionResult GetLeaveTypes()
    {         
            var leaveTypes = _context.OptLeaveType.OrderBy(a => a.LeaveTypeId).ToList();
            return new JsonResult(new { data = leaveTypes });
    }

2) .NET MVC:-

    public ActionResult GetLeaveTypes()
    {         
            var leaveTypes = _context.OptLeaveType.OrderBy(a => a.LeaveTypeId).ToList();
            return Json(new { data = leaveTypes }, System.Web.Mvc.JsonRequestBehavior.AllowGet);
    }

我只想问一下,为什么结果以小写字母开头返回字段名称?我的数据库字段和模型名称都以大写字母开头,如LeaveTypeId、LeaveType等。谢谢。{"data":[{"leaveTypeId":1,"leaveType":"带薪年假","status":"1"},{"leaveTypeId":2,"leaveType":"病假","status":"1"}]} - George
1
@George 现在 .NET CORE 的 JSON 默认是 camelCase(这是 JSON Convention)。如果您需要/希望所有的 JSON 输出都是 PascalCase,那么请参见--https://dev59.com/UFkT5IYBdhLWcg3wWONA - Ashiquzzaman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接