繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM