0

我将 JSON 参数传递给 asp.net C#。参数可以是单个或多个数据。

所以我编写了将参数作为 LIST 类类型的代码。

但它返回错误,“对象引用未设置为对象的实例。”

我这样写测试代码,它会犯同样的错误。

请检查我的代码,并请给我建议。

测试代码,

在控制器类中

[HttpGet]
public ActionResult modelTest(TestList obj)
{

    return Content(obj.wow.Count.ToString());
}

以及模型和列表类,

public class TestList
{
    public List<TestModel> wow { get; set; }
}

public class TestModel
{
    public string id { get; set; }
    public string name { get; set; }
}

并调用/Test/modelTest/?id=myId&name=john&age=11

然后,发生错误,

Object reference not set to an instance of an object.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error: 


Line 338:        {
Line 339:            
Line 340:            return Content(obj.wow.Count.ToString());
Line 341:        }
Line 342:
4

2 回答 2

3

wow列表可能从未初始化。

您可以(例如)在 TestList 构造函数中执行此操作:

public class TestList
{
   public TestList() {
      wow = new List<TestModel>();
   }
    public List<TestModel> wow { get; private set; }//if you do this way, you can have a private setter
}

或者如果你需要一个公共二传手

public class TestList {

    private List<TestModel> wow_;

    public List<TestModel> wow {
       get {
          if (wow_ == null) wow_ = new List<TestModel>();
          return wow_;
       }
       set {wow_ = value;}
    }
 }
于 2012-07-20T13:54:03.527 回答
0

我认为您的呼叫系统不正确。您需要为 json 数据添加“TestList”之类的列表。调试它并检查“modelTest”方法实际接收到的内容。

于 2012-07-20T14:13:43.443 回答