[英]ArgumentOutOfRangeException when writing to console from windows service
[英]ArgumentOutOfRangeException when writing to a model
我正在尝试首次在模型中使用模型:在我第一次写入模型时,我得到了ArgumentOutOfRangeException
。
第一次写入数组时出现错误:
private IAdditionalQuestionsService _service;
private SelectedAdditionalQuestionAnswerModel _model;
private void InitializeController()
{
_service = GetObject<IAdditionalQuestionsService>();
//GetPageHeaderText(inst);
ViewBag.GetPageTitle = "Additional Questions";
}
[HttpGet]
public virtual ActionResult Edit()
{
Institution inst = _service.GetInstitution(State.GetInstitutionRecordId());
_model = GetObject<SelectedAdditionalQuestionAnswerModel>();
_model.AddQuestAnswModel = new List<AdditionalQuestionAnswerModel>();
GetPageConfiguration1(inst);
return View(_model);
}
AdditionalQuestionAnswerModel m = GetObject<AdditionalQuestionAnswerModel>();
int c = 0;
foreach (var x in inst.AdditionalQuestions)
{
foreach (var y in x.AdditionalQuestionAnswers)
{
// Error is happening on next line *************
_model.AddQuestAnswModel[c].QuestionText = x.QuestionText;
_model.AddQuestAnswModel[c].InstitutionId = x.InstitutionId;
_model.AddQuestAnswModel[c].AdditionalQuestionId = x.Id;
_model.AddQuestAnswModel[c].AnswerText = y.AnswerText;
_model.AddQuestAnswModel[c].IsSelected = false;
c++;
}
}
您不能使用_model.AddQuestAnswModel[c]
因为您从未将任何项目添加到列表中。
而是创建一个新对象并设置其值,然后将该项目添加到列表中。
像这样:
AdditionalQuestionAnswerModel newItem = new AdditionalQuestionAnswerModel();
//set the values here to newItem
_model.AddQuestAnswModel.Add(newItem);
您首先实例化您的列表
_model.AddQuestAnswModel = new List<AdditionalQuestionAnswerModel>();
然后您尝试访问第一个元素
_model.AddQuestAnswModel[c] // c == 0
而不向列表添加任何元素。
在尝试通过索引或更简单的方式访问列表之前,添加一个元素:
foreach (var y in x.AdditionalQuestionAnswers)
{
AdditionalQuestionAnswerModel newObj = new AdditionalQuestionAnswerModel
{
QuestionText = x.QuestionText;
InstitutionId = x.InstitutionId;
AdditionalQuestionId = x.Id;
AnswerText = y.AnswerText;
IsSelected = false;
};
_model.AddQuestAnswModel.Add(newObj);
}
Ir表示_model.AddQuestAnswModel
在指示的_model.AddQuestAnswModel
上没有项目,并且从您的代码中,我看到_model.AddQuestAnswModel
仅用new List<AdditionalQuestionAnswerModel>()
初始化,因此它不包含任何项目(除非您重新在构造器中执行此操作)。
您需要像这样填充它:
_model.AddQuestAnswModel.Add(item);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.