ASP.NET MVC System.ArgumentNullException:值不能为null。参数名称:source

时间:2014-03-13 18:19:12

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

正在处理我的项目,并且无法找到更多的东西。在这一部分,我不能有IPagedList<Product_list> products = null;,但是当我创建IPagedList<Product_list> products = new IPagedList<Product_list>时,它表示我也不能这样做。

2 个答案:

答案 0 :(得分:0)

您无法初始化界面。您需要初始化实现接口的类。

所以如果你有:

public interface IPuppy
{
   void Bark();
}

你需要:

public class Puppy : IPuppy
{
   public void Bark()
   {
      Console.WriteLine("Bark!");
   }
}

有关MSDN的接口的更多信息。

答案 1 :(得分:0)

据推测,您似乎在null集合上调用了扩展方法。如你所说,你初始化这样的集合:

IPagedList<Product_list> products = null;

所以products现在是null。根据错误,听起来你下次会这样做:

products = products.Where(p => someCondition);

这会失败,因为错误说明productsnull。语法允许您在null对象上调用扩展方法,主要是因为扩展方法只是语法糖。但它只是在运行时返回错误。您需要先将products初始化为有效实例。