簡體   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