为了账号安全,请及时绑定邮箱和手机立即绑定

从控制器调用列表类

从控制器调用列表类

C#
慕侠2389804 2022-11-13 14:22:38
如何从控制器调用我的班级列表?这是我的模型:public class AuthJsonResponses{    public int Code { get; set; }    public string Jwt { get; set; }    //public string[] Message { get; set; }    public List<RootObject> Message { get; set; }}public class RootObject{    public string msg { get; set; }    public string code { get; set; }}这就是我在控制器中调用的:List<RootObject> rootObj = new List<RootObject>();rootObj[0].code = "success_04";rootObj[0].msg = "Access granted";JsonRes.Message = rootObj;但是,我不知道的范围似乎存在问题。我的代码有什么问题?
查看完整描述

5 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

您可以执行以下操作之一:


 List<RootObject> rootObj = new List<RootObject>();

        var newObj=new RootObject()

        {

            code = "success_04",

            msg = "Access granted"

        };

        rootObj.Add(newObj);

        List<RootObject> rootObj1 = new List<RootObject>()

        {

            new RootObject()

            {

                code = "success_04",

                msg = "Access granted"

            }

        };

接着


JsonRes.Message = rootObj;


查看完整回答
反对 回复 2022-11-13
?
繁花如伊

TA贡献2012条经验 获得超12个赞

您正在像处理数组一样处理列表,这是行不通的,您需要使用该Add方法,例如


rootObj.Add(new RootObj{

    code = "success_04",

    msg = "Access granted"

});

您还可以使用该AddRange方法添加多个对象,例如


rootObj.AddRange(new List<RootObj>{new RootObj{

    code = "success_04",

    msg = "Access granted"

}, new RootObj{

    code = "success_05",

    msg = "Access denied"

}});


查看完整回答
反对 回复 2022-11-13
?
互换的青春

TA贡献1797条经验 获得超6个赞

直接访问您的AuthJsonResponses实例。首先,更新该类以使其Message具有私有设置器并将其实例化为List<RootObject>


public class AuthJsonResponses

{

    public int Code { get; set; }

    public string Jwt { get; set; }

    public List<RootObject> Messages { get; private set; } = new List<RootObject>();

}


public class RootObject

{

    public string msg { get; set; }

    public string code { get; set; }

}

在您的代码中,直接将对象添加到Message属性中。我建议将其重命名为Messages以表明它是一个集合


jsonRes.Messages.Add(new RootObject{msg ="Access granted", code="success_04"});


查看完整回答
反对 回复 2022-11-13
?
偶然的你

TA贡献1841条经验 获得超3个赞

您面临的问题是您在初始化列表之后引用列表的第一个元素!初始化本身只是创建List类的对象,它不创建任何元素!


因此,您必须自己创建RootObject类的对象,然后将其添加到列表中:


// create object

var r = new RootObject();

r.code = "success_04";

r.msg = "Access granted";

// add it to list

rootObj.Add(r);


查看完整回答
反对 回复 2022-11-13
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

当您List实际使用时,您可以使用从类继承的方法IEnumerable,因为 List 是 IEnumerable 的实现。


你可以这样做:


List<RootObject> rootObj = new List<RootObject>();

//delete this---- rootObj[0].code = "success_04";

//delete this---- rootObj[0].msg = "Access granted";

//use this

rootObj.Add(new RootObject{

code = "success_04",

msg = "Access Granted"

})

JsonRes.Message = rootObj;


查看完整回答
反对 回复 2022-11-13
  • 5 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信