C# 在控制器中填充模型,获取nullreference
嗨,我遇到了一个问题,我似乎无法解决它。我想填充模型的一部分,然后将其传递给视图,以便用户可以填充其余部分并提交 这是模型C# 在控制器中填充模型,获取nullreference,c#,asp.net-core-mvc,nullreferenceexception,C#,Asp.net Core Mvc,Nullreferenceexception,嗨,我遇到了一个问题,我似乎无法解决它。我想填充模型的一部分,然后将其传递给视图,以便用户可以填充其余部分并提交 这是模型 public class SelectModel { public List<String> Scripts { get; set; } public string ScriptSelection { get; set; } public IFormFile InputFile { get; set; } } 我在model.Scri
public class SelectModel
{
public List<String> Scripts { get; set; }
public string ScriptSelection { get; set; }
public IFormFile InputFile { get; set; }
}
我在model.Scripts.Add(“Germany”)上得到null ref异常
我以前从一个视图填充了一个模型,并将其传递回控制器,但在控制器中为我的第一个视图初始化模型时似乎遇到了问题,因为您正在调用
NULL
上的Add
方法<代码>模型。脚本为空,因此您将得到经典的“对象引用未设置为instance”错误
在尝试添加之前,将其初始化为空列表
一种方法是使用默认构造函数,将脚本属性初始化为空列表
public class SelectModel
{
public List<String> Scripts { get; set; }
public string ScriptSelection { get; set; }
public IFormFile InputFile { get; set; }
public SelectModel()
{
this.Scripts =new List<string>();
}
}
公共类选择模型
{
公共列表脚本{get;set;}
公共字符串脚本选择{get;set;}
公共文件输入文件{get;set;}
公共模型()
{
this.Scripts=new List();
}
}
另一个选项是在创建对象时将其初始化为空列表
var model = new SelectModel(){ Scripts =new List<string>() };
model.Scripts.Add("Germany");
var model=new SelectModel(){Scripts=new List()};
model.Scripts.Add(“德国”);
还可以使用对象/集合初始化器语法
var model = new SelectModel()
{
Scripts = new List<string>()
{
"Germany", "USA"
}
};
var model=new SelectModel()
{
脚本=新列表()
{
“德国”、“美国”
}
};
因为您正在调用NULL
上的Add
方法<代码>模型。脚本为空,因此您将得到经典的“对象引用未设置为instance”错误
在尝试添加之前,将其初始化为空列表
一种方法是使用默认构造函数,将脚本属性初始化为空列表
public class SelectModel
{
public List<String> Scripts { get; set; }
public string ScriptSelection { get; set; }
public IFormFile InputFile { get; set; }
public SelectModel()
{
this.Scripts =new List<string>();
}
}
公共类选择模型
{
公共列表脚本{get;set;}
公共字符串脚本选择{get;set;}
公共文件输入文件{get;set;}
公共模型()
{
this.Scripts=new List();
}
}
另一个选项是在创建对象时将其初始化为空列表
var model = new SelectModel(){ Scripts =new List<string>() };
model.Scripts.Add("Germany");
var model=new SelectModel(){Scripts=new List()};
model.Scripts.Add(“德国”);
还可以使用对象/集合初始化器语法
var model = new SelectModel()
{
Scripts = new List<string>()
{
"Germany", "USA"
}
};
var model=new SelectModel()
{
脚本=新列表()
{
“德国”、“美国”
}
};
您必须初始化列表。差不多
public class SelectModel
{
public List<String> Scripts { get; set; } = new List<String>();
public string ScriptSelection { get; set; }
public IFormFile InputFile { get; set; }
}
公共类选择模型
{
公共列表脚本{get;set;}=new List();
公共字符串脚本选择{get;set;}
公共文件输入文件{get;set;}
}
或者在控制器动作中
public IActionResult Index()
{
SelectModel model = new SelectModel();
//initialization of the list Before usage
model.Scripts = new List<String>();
model.Scripts.Add("Germany");
return View(model);
}
public IActionResult Index()
{
SelectModel model=新建SelectModel();
//使用前列表的初始化
model.Scripts=新列表();
model.Scripts.Add(“德国”);
返回视图(模型);
}
您必须初始化列表。差不多
public class SelectModel
{
public List<String> Scripts { get; set; } = new List<String>();
public string ScriptSelection { get; set; }
public IFormFile InputFile { get; set; }
}
公共类选择模型
{
公共列表脚本{get;set;}=new List();
公共字符串脚本选择{get;set;}
公共文件输入文件{get;set;}
}
或者在控制器动作中
public IActionResult Index()
{
SelectModel model = new SelectModel();
//initialization of the list Before usage
model.Scripts = new List<String>();
model.Scripts.Add("Germany");
return View(model);
}
public IActionResult Index()
{
SelectModel model=新建SelectModel();
//使用前列表的初始化
model.Scripts=新列表();
model.Scripts.Add(“德国”);
返回视图(模型);
}
doh!谢谢,似乎在那里有一个盲点几个小时了,似乎认为创建模型也创建了其中的东西。doh!谢谢,似乎有一个盲点在那里几个小时,似乎有想法创造模型也创造了它的东西。