我有一个小型MVC Web应用程序,我想使用对象列表 - 但只有大约20个没有关系,所以我不想设置DB。我的想法是根据我拥有的数据在运行中创建这些列表,然后将它们传递给Controller。 所以我创建了作为我的模型类“Hiker”的一部分,这个方法调用了Hikers类的构造函数
public List<Hikers> enterHikers()
{
List<Hikers> hikersList = new List<Hikers>
{
new Hikers("name1", "surname1", "email1"),
new Hikers("name2", "surname2", "email2")
};
return hikersList;
}
当它被调用时,它应该返回我拥有的所有条目的列表。但是,当我尝试从控制器中调用它时:
List<MVC.Models.Hikers> hikerlist = new Models.Hikers.enterHikers();
我收到错误“MVC.Models.Hikers.enterHikers()是'方法'但是像'类型'一样使用”。有人知道如何修复它并让我从控制器访问我的数据吗?非常感谢。
答案 0 :(得分:2)
对代码进行简单更改即可解决问题
List<MVC.Models.Hikers> hikerlist = (new Models.Hikers()).enterHikers();
它与您的代码有什么不同?
正如错误清楚地说明的那样,您只能使用new
来创建类型。您的代码正在尝试创建方法的实例,这不是您想要的,然后该方法甚至无法访问,因为这是一个实例方法。
因此,您需要做的就是创建Hikers
类型的实例并调用该实例的'enterHikers`方法。
答案 1 :(得分:1)
您必须制作函数static
并使用它稍微不同。
public static List<Hikers> enterHikers()
{
return new List<Hikers>
{
new Hikers("name1", "surname1", "email1"),
new Hikers("name2", "surname2", "email2")
}
}
并使用它:
List<MVC.Models.Hikers> hikerList = Models.Hikers.enterHikers();
就像Tetsuya所说,这样你不必实例化静态方法,你可以直接使用它们。