首页 > 解决方案 > 带有 ASP.NET Core MVC 和 DataDTO 的 POST 请求返回 null

问题描述

我正在尝试POST在我的HomeController. 这是 POST 请求方法的代码:

[HttpPost]
public Tutoring AddTutoring(TutoringDTO tutoringToAdd)
{
        Console.WriteLine("FilteredStudents");

        Tutoring tutoring = new Tutoring
        {
            StudentId = tutoringToAdd.StudentId, //with 1 f.e. working
            Schulstufe = tutoringToAdd.Schulstufe, //with 2 f.e. working
            SubjectId = tutoringToAdd.SubjectId, //with 3 f.e. working
        };

        db.Tutorings.Add(tutoring);
        db.SaveChanges();

        return tutoring;
}

如果我将StudentId,Schulstufe和替换为SubjectId常量值,它就可以工作。

这是TutoringDTO

public class TutoringDTO
{
    public int Schulstufe { get; set; }
    public int? StudentId { get; set; }
    public int? SubjectId { get; set; }
}

这是Tutorings我的 DbLib 中的类:

using System;
using System.Collections.Generic;

#nullable disable

namespace AjaxTutoringsDb
{
    public partial class Tutoring
    {
        public int Id { get; set; }
        public int Schulstufe { get; set; }
        public int? StudentId { get; set; }
        public int? SubjectId { get; set; }

        public virtual Student Student { get; set; }
        public virtual Subject Subject { get; set; }
    }
}

这是 Postman 中的请求正文:

{ "studentId": "6", "subjectId": "1", "schulstufe": "1" }

这是 Postman 的响应正文:

{
    "id": 136,
    "schulstufe": 0,
    "studentId": null,
    "subjectId": null,
    "student": null, //this doesn't matter
    "subject": null  //this doesn't matter
}

总而言之,问题是如果我向服务器发送动态值,我总是在响应正文中得到 null 并且我发送到服务器的数据没有正确存储。

标签: c#asp.net-coreasp.net-core-mvc

解决方案


推荐阅读