带有 ASP.NET Core MVC 和 DataDTO 的 POST 请求返回 null

时间:2021-05-29 10:06:31

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

我正在尝试在我的 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;
}

如果我用常量值替换 StudentIdSchulstufeSubjectId,它会起作用。

这是TutoringDTO

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

这是我的 DbLib 中的 Tutorings 类:

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,并且我发送到服务器的数据没有正确存储。

0 个答案:

没有答案