在控制器中填充模型,获取空引用
Populating model in controller, getting nullreference
嗨,我遇到了一个问题,我似乎无法解决它。我想填充模型的一部分,然后将其传递给视图,以便用户可以填充其余部分并提交。
这是模型
public class SelectModel
{
public List<String> Scripts { get; set; }
public string ScriptSelection { get; set; }
public IFormFile InputFile { get; set; }
}
这是我尝试在控制器中填充列表的地方
public IActionResult Index()
{
SelectModel model = new SelectModel();
model.Scripts.Add("Germany");
return View(model);
}
我在 model.Scripts.Add("Germany");
处收到空引用异常
我之前已经从一个视图中填充了一个模型并将其传回控制器,但我似乎在为我的第一个视图初始化控制器中的模型时遇到问题
因为您正在 NULL
上调用 Add
方法。 model.Scripts
为 NULL,因此您会收到经典的“对象引用未设置为实例e”错误
在尝试添加之前将其初始化为一个空列表。
一种方法是使用默认构造函数,它将您的脚本 属性 初始化为一个空列表。
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>();
}
}
另一种选择是在创建对象时将其初始化为空列表
var model = new SelectModel(){ Scripts =new List<string>() };
model.Scripts.Add("Germany");
您也可以使用 object/collection 初始化器语法
var model = new SelectModel()
{
Scripts = new List<string>()
{
"Germany", "USA"
}
};
您必须初始化列表。像
public class SelectModel
{
public List<String> Scripts { get; set; } = new List<String>();
public string ScriptSelection { get; set; }
public IFormFile InputFile { 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 class SelectModel
{
public List<String> Scripts { get; set; }
public string ScriptSelection { get; set; }
public IFormFile InputFile { get; set; }
}
这是我尝试在控制器中填充列表的地方
public IActionResult Index()
{
SelectModel model = new SelectModel();
model.Scripts.Add("Germany");
return View(model);
}
我在 model.Scripts.Add("Germany");
处收到空引用异常我之前已经从一个视图中填充了一个模型并将其传回控制器,但我似乎在为我的第一个视图初始化控制器中的模型时遇到问题
因为您正在 NULL
上调用 Add
方法。 model.Scripts
为 NULL,因此您会收到经典的“对象引用未设置为实例e”错误
在尝试添加之前将其初始化为一个空列表。
一种方法是使用默认构造函数,它将您的脚本 属性 初始化为一个空列表。
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>();
}
}
另一种选择是在创建对象时将其初始化为空列表
var model = new SelectModel(){ Scripts =new List<string>() };
model.Scripts.Add("Germany");
您也可以使用 object/collection 初始化器语法
var model = new SelectModel()
{
Scripts = new List<string>()
{
"Germany", "USA"
}
};
您必须初始化列表。像
public class SelectModel
{
public List<String> Scripts { get; set; } = new List<String>();
public string ScriptSelection { get; set; }
public IFormFile InputFile { 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);
}