当我尝试使用这种方法时,我遇到了一个null异常,我不知道出了什么问题。
感谢您的帮助。
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(course);
上获得null异常这是我的观点
<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>
答案 0 :(得分: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
是否为空,如果是,则实例化它。