[英]How to specify a type parameter so that a generic base class will use the same model class that is used by the DAL method that it calls?
[英]MVC - method belonging to model class “is used as a type”
我有一个小型MVC Web应用程序,我想在其中使用对象列表-但仅约20个并且没有关系,因此我不想设置数据库。 我的想法是根据运行的数据创建这些列表,然后将它们传递给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()是'方法',但像'类型'一样使用”。 有人知道如何解决它,让我从控制器访问数据吗? 非常感谢。
对您的代码进行简单更改即可解决该问题
List<MVC.Models.Hikers> hikerlist = (new Models.Hikers()).enterHikers();
它与您的代码有何不同?
正如错误明确指出的那样,您只能使用new
来创建类型。 您的代码试图创建一个方法实例,这不是您想要的,因此该方法甚至不可访问,因为那是一个实例方法。
因此,您要做的就是创建一个Hikers
类型的实例并调用该实例的'enterHikers`方法。
您必须使该函数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所说的那样,您不必实例化静态方法,就可以直接使用它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.