没有给出与“ Human.Human(int,string,string,string,string)”所需的形式参数“ id”相对应的参数

时间:2019-01-15 09:09:57

标签: c# .net

我无法通过Homecontrollers动作方法调用新的Human对象。

        var employee = new Human { id = 1, name = "home index" , isAuth = isAuth,token="null"};

这是我的模特

namespace WebApplication3.Models
{
    public class Human
    {
        public Human(int id, string name, string isAuth, string token)
        {
            this.id = id;
            this.name = name;
            this.isAuth = isAuth;
            this.token = token;
        }

2 个答案:

答案 0 :(得分:4)

您正在使用Object Initializer的语法,但是此语法至少需要使用一个空的构造函数,因为花括号内的代码是在构造对象之后执行的。

如果要使用该语法,则需要将emtpy构造函数添加到模型中

public class Human
{
    public Human() {}

    public Human(int id, string name, string isAuth, string token)
    {
        this.id = id;
        this.name = name;
        this.isAuth = isAuth;
        this.token = token;
    }

现在您有两个选择。使用当前语法,以便编译器调用空的构造函数,然后使用花括号之间的值初始化属性,或仅使用常规语法直接使用四个参数调用构造函数。

var employee = new Human (1,"home index",isAuth,"null");

请注意,对于第一种方法,您需要公开这些属性

public class Human
{
    public int id {get;set;}           
    .....

答案 1 :(得分:1)

尝试

var employee = new Human(1, "home index" isAuth, null);