繁体   English   中英

尝试在 MVC controller 中调用 json ID 但我收到此错误“对象引用未设置为对象的实例”

[英]Trying to call json ID in MVC controller but I am getting this error “Object reference not set to an instance of an object”

I am trying to get ID from a json file in an ASP.NET MVC controller but for some reason it gives me "Object reference not set to an instance of an object." 错误。 json文件:

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

C# class:

public class User
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
}

ASP.NET MVC controller:

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

首先,您应该将IdAge更改为数字,否则 model binder 会给您一个例外。 像这样的东西:

JSON 值无法转换为 System.Int32。 路径:$.Id | 行号:0 | 字节位置行:11`

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

{
    "Id": 1,
    "FirstName": "FirstName",
    "LastName": "LastName",
    "Age": 21
}

然后,您应该将参数User user添加到您的操作中,而不是像您在其中一条评论中所说的那样将user变量声明为 controller 的属性。

您最终应该得到以下结果:

[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}";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM