C# MVC-属于模型类的方法“;用作“类型”;
我有一个小的MVC web应用程序,我想在其中使用对象列表-但只有大约20个,没有关系,所以我不想设置DB。我的想法是在跑步时根据我拥有的数据创建这些列表,然后将它们传递给控制器。 因此,作为模型类“Hiker”的一部分,我创建了这个方法,它调用Hikers类的构造函数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
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个参数的构造函数”。最后,我决定使用静态函数,它解决了我的问题。