Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC-属于模型类的方法“;用作“类型”;_C#_Asp.net Mvc - Fatal编程技术网

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

C# MVC-属于模型类的方法“;用作“类型”;,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个小的MVC web应用程序,我想在其中使用对象列表-但只有大约20个,没有关系,所以我不想设置DB。我的想法是在跑步时根据我拥有的数据创建这些列表,然后将它们传递给控制器。 因此,作为模型类“Hiker”的一部分,我创建了这个方法,它调用Hikers类的构造函数 public List<Hikers> enterHikers() { List<Hikers> hikersList = new List<Hikers&g

我有一个小的MVC web应用程序,我想在其中使用对象列表-但只有大约20个,没有关系,所以我不想设置DB。我的想法是在跑步时根据我拥有的数据创建这些列表,然后将它们传递给控制器。 因此,作为模型类“Hiker”的一部分,我创建了这个方法,它调用Hikers类的构造函数

public List<Hikers> enterHikers()
        {
            List<Hikers> hikersList = new List<Hikers>
            {
            new Hikers("name1", "surname1", "email1"),
            new Hikers("name2", "surname2", "email2")
            };
        return hikersList;
    }
public List enterHikers()
{
列表徒步旅行者列表=新列表
{
新徒步旅行者(“姓名1”、“姓氏1”、“电子邮件1”),
新徒步旅行者(“姓名2”、“姓氏2”、“电子邮件2”)
};
返回远足者名单;
}
当调用它时,它应该返回我拥有的所有条目的列表。但是,当我尝试从控制器调用它时,如下所示:

List<MVC.Models.Hikers> hikerlist = new Models.Hikers.enterHikers();
List hikerlist=new Models.Hikers.enterHikers();

我得到的错误是“MVC.Models.Hikers.enterHikers()是一个‘方法’,但使用起来像‘类型’”。有人知道如何修复它并让我从控制器访问数据吗?非常感谢。

您必须将函数
设置为静态
,并使用稍微不同的函数

public static List<Hikers> enterHikers()
{
    return new List<Hikers>
    {
        new Hikers("name1", "surname1", "email1"),
        new Hikers("name2", "surname2", "email2")
    }
}
公共静态列表enterHikers()
{
返回新列表
{
新徒步旅行者(“姓名1”、“姓氏1”、“电子邮件1”),
新徒步旅行者(“姓名2”、“姓氏2”、“电子邮件2”)
}
}
然后像这样使用它:

List<MVC.Models.Hikers> hikerList = Models.Hikers.enterHikers();
List hikerList=Models.Hikers.enterHikers();

正如Tetsuya所说,这样您就不必实例化静态方法,您可以直接使用它们

您必须将函数
设置为静态
,并使用稍微不同的函数

public static List<Hikers> enterHikers()
{
    return new List<Hikers>
    {
        new Hikers("name1", "surname1", "email1"),
        new Hikers("name2", "surname2", "email2")
    }
}
公共静态列表enterHikers()
{
返回新列表
{
新徒步旅行者(“姓名1”、“姓氏1”、“电子邮件1”),
新徒步旅行者(“姓名2”、“姓氏2”、“电子邮件2”)
}
}
然后像这样使用它:

List<MVC.Models.Hikers> hikerList = Models.Hikers.enterHikers();
List hikerList=Models.Hikers.enterHikers();

正如Tetsuya所说,这样您就不必实例化静态方法,您可以直接使用它们

只需对代码进行简单更改即可解决此问题

List<MVC.Models.Hikers> hikerlist = (new Models.Hikers()).enterHikers();
List hikerlist=(new Models.Hikers()).enterHikers();
它与您的代码有何不同

正如错误明确指出的,您只能使用
new
创建类型。您的代码试图创建一个方法的实例,这不是您想要的,然后该方法甚至不可访问,因为这是一个实例方法


因此,您只需创建一个类型为
Hikers
的实例,并调用该实例的“enterHikers”方法。

对代码进行简单更改即可解决此问题

List<MVC.Models.Hikers> hikerlist = (new Models.Hikers()).enterHikers();
List hikerlist=(new Models.Hikers()).enterHikers();
它与您的代码有何不同

正如错误明确指出的,您只能使用
new
创建类型。您的代码试图创建一个方法的实例,这不是您想要的,然后该方法甚至不可访问,因为这是一个实例方法


因此,您需要做的就是创建一个类型为
Hikers
的实例,并调用该实例的'enterHikers'方法。

将其更改为
public static List enterHikers
,它应该可以工作。静态方法不需要实例化,您可以直接使用它们。将其更改为
public Static List enterHikers
,它应该可以工作。静态方法不需要实例化,您可以直接使用它们。感谢您对错误的解释,但是在您进行更改后,我得到了错误“'MVC.Models.Hikers'不包含接受0个参数的构造函数”。最后,我决定使用静态函数,它解决了我的问题。感谢您对错误的解释,但在您进行更改后,我得到了错误“'MVC.Models.Hikers'不包含接受0个参数的构造函数”。最后,我决定使用静态函数,它解决了我的问题。