C# 试图在MVC控制器中调用json ID,但我遇到了这个错误;对象引用未设置为对象的实例;

C# 试图在MVC控制器中调用json ID,但我遇到了这个错误;对象引用未设置为对象的实例;,c#,json,asp.net-mvc,C#,Json,Asp.net Mvc,我试图从ASP.NET MVC控制器中的json文件中获取ID,但由于某些原因,它给了我“对象引用未设置为对象实例”。错误。 JsonFile: "Id": "1", "FirstName": "FirstName", "LastName": "LastName", "Age": "21", C级: ASP.NET MVC控制器: mo

我试图从ASP.NET MVC控制器中的json文件中获取ID,但由于某些原因,它给了我“对象引用未设置为对象实例”。错误。 JsonFile:

"Id": "1",
"FirstName": "FirstName",
"LastName": "LastName",
"Age": "21",
C级:

ASP.NET MVC控制器:

model = UserRepository.GetUserById(User.Id);   // error line

首先,您应该将
Id
Age
更改为数字,否则型号活页夹会给您一个例外。大概是这样的:

{
    "Id": 1,
    "FirstName": "FirstName",
    "LastName": "LastName",
    "Age": 21
}
无法将JSON值转换为System.Int32。路径:$.Id |行号:0 | BytePositionLine:11 `

您的JSON现在应该如下所示:

{
    "Id": 1,
    "FirstName": "FirstName",
    "LastName": "LastName",
    "Age": 21
}
然后,您应该向操作中添加一个参数
User
,而不是像您在评论中所说的那样,将
User
变量声明为控制器的属性

你应该以以下几点作为结束:

[HttpPost]
public string MyAction(User user)
{
    if (user is null)
        return "Bad request :(";

    // Do things with user.

    return $"Id: {user.Id}, First Name: {user.FirstName}, Last Name: {user.LastName}, Age: {user.Age}";
}

这回答了你的问题吗@haldo我能理解为什么错误来自您附加的链接,但我找不到解决方案。您如何初始化
User
?您应该将json数据中的
Id
Age
更改为数字,就像现在的
string
s一样。像这样的“public Models.User{get;}”