Null Ссылка на добавление в базу данных в MVC
Я столкнулся с нулевым исключением, когда я пытался использовать этот метод, и я не знаю, что не так.
Ваша помощь будет очень полезна, спасибо.
HttpPost
[HttpPost]
public ActionResult AddConsultation(Consultation _conmodel, int PatientId, int[] courses)
{
DataContext da = new DataContext();
if (courses != null)
{
foreach (var id in courses)
{
Symptoms course = da.Symptoms.Find(id);
_conmodel.Symptomses.Add(course);
}
}
da.Consultations.Add(_conmodel);
da.SaveChanges();
return View("Index");
}
Я получаю нулевое исключение для _conmodel.Symptomses.Add(конечно);
Это мой взгляд
<div class="form-group">
@Html.LabelFor(model => model.Symptomses, htmlAttributes: new {@class = "control-label col-md-2"})
<div class="col-md-10">
@Html.ListBox("courses")
@Html.ValidationMessageFor(model => model.Symptomses, "", new {@class = "text-danger"})
</div>
<br/>
<br/>
<hr/>
</div>
<div class="form-group">
<br/>
<hr/>
@Html.LabelFor(m => m.illness, new {@class = "col-md-2 control-label"})
<div class="col-md-10">
@Html.TextAreaFor(m => m.illness, new {rows = "4", cols = "50", htmlAttributes = new {@class = "form-control"}})
</div>
</div>
</div>
<div class="col-md-6">
<h4 class="x"></h4>
<hr/>
<div class="form-group">
@Html.LabelFor(m => m.PresribedMed, new {@class = "col-md-2 control-label"})
<div class="col-md-10">
@Html.TextAreaFor(m => m.PresribedMed, new {rows = "4", cols = "50", htmlAttributes = new {@class = "form-control"}})
</div>
<br/>
<br/>
<hr/>
</div>
<br/>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" class="btn btn-primary" value="Add Consultation"/>
@*<button type="button" class="btn btn-primary" onclick="location.href='@Url.Action("Next", new { id = Model.UserName })';return false;"> Next</button>*@
</div>
</div>
</div>
}
</div>
<script type="text/javascript">
$("#courses").select2({
placeholder: "Please select symptoms",
maximumSelectionSize: 10,
width:300
});
</script>
1 ответ
_conmodel.Symptomses
возможно null
, Если предположить, Symptomses
это список, попробуйте это вместо:
if (courses != null)
{
_conmodel.Symptomses = _conmodel.Symptomses ?? new List<Symptomses>();
foreach (var id in courses)
{
Symptoms course = da.Symptoms.Find(id);
_conmodel.Symptomses.Add(course);
}
}
Таким образом, мы можем проверить, если _conmodel.Symptomses
является нулевым, и если это так, создайте его экземпляр.