0

次のDeletePOSTアクションメソッドがあります:-

[HttpPost]
        public ActionResult Delete(int id)
        {
            try
            {
                var lb = repository.GetLabTest(id, false);

                repository.DeleteLabTest(lb);
                repository.Save();
                return Json(new { IsSuccess = "True", id = id, description = lb.Description }, JsonRequestBehavior.AllowGet);
            }
//code goes here....

コードを書いたとき、オブジェクトを削除してから、内のプロパティ値を取得しているためdescription = lb.Description、、でエラーが返されると思いました。しかし、コードは削除されたばかりのオブジェクトの値を取得できました。では、これはどのように起こりますか?BRlblb.Descriptionreturn JsonDescription

4

1 に答える 1

1

そのIMOは、メモリではなくデータベースからオブジェクトを削除したためです。削除した場合、そのオブジェクトのコピーは、の形式でmemに引き続き存在しvar lbます。

repository.Save();
lb=null;

次に、コードは例外をスローします。おそらく、オブジェクト参照はその種類のセットではありません

于 2012-04-30T17:23:18.750 に答える