MVC - 属于模型类的方法“用作类型”

时间:2016-12-07 06:16:01

标签: c# asp.net-mvc

我有一个小型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()是'方法'但是像'类型'一样使用”。有人知道如何修复它并让我从控制器访问我的数据吗?非常感谢。

2 个答案:

答案 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所说,这样你不必实例化静态方法,你可以直接使用它们。