我在理解asp.net mvc如何处理Null值时遇到了一些问题。 在第一个场景中,我有以下操作方法: -
[HttpPost]
public ActionResult Delete(int labtestid, int visitid)
{
try
{
var vlr = repository.GetVisitLabResult(labtestid,visitid);
string desc = vlr.LabTest.Description;
repository.DeleteVisitLabResult(vlr);
repository.Save();
return Json(new { IsSuccess = "True", id = labtestid, description = desc }, JsonRequestBehavior.AllowGet);
}
如果存储库方法var vlr = repository.GetVisitLabResult(labtestid,visitid);
未返回任何结果(var vlr is null
),则会在string desc = vlr.LabTest.Description
上引发以下异常; NullReferenceException未由用户代码处理。那么为什么框架会引发异常而不是仅仅为字符串desc分配一个空值!
BR
答案 0 :(得分:3)
看起来实际对象本身为null。您有一个null对象,并且您正在尝试访问它上面的属性,因此运行时将抛出NullReferenceException
。在尝试访问它的成员之前,最好先检查对象是否为空:)