0

私の行動では、データベースからいくつかの行を削除する必要があります。ただし、例外がスローされた場合は、現在のモデルで View を返す必要があります。

[HttpGet]
    public ActionResult Delete(int id)
    {
        try
        {
            mDataMgr.DeleteUnit(id);
        }
        catch (DataManagerException ex)
        {
            if (ex.Error == DataManagerError.UnitHasMaps)
            {
                ModelState.AddModelError(String.Empty, "Unit has maps");
                UnitRegionsViewModel regionsVM = new UnitRegionsViewModel()
                {
                    Regions = mDataMgr.UnitRegions(id),
                    UnitId = id
                };

                return View("View", regionsVM);
            }
        }

        return RedirectToAction("List");
    }

現在のモデルをデータベースからリロードする必要があります。アクションで現在のモデルを取得する方法はありますか?

4

2 に答える 2

2

「現行モデル」というものはありません。Web ページは「ステートレス」です。ページがレンダリングされると、モデルを含め、そのページに関するすべての情報が失われます。その情報を取得したい場合は、通常、モデルをコントローラーに戻します。

モデルをページの非表示フィールドにシリアル化し、そのモデルを Delete メソッドのパラメーターとして受け入れることができます。ただし、その情報のいずれかが機密情報である場合、これは行うべきことではありません。

于 2013-08-04T22:24:37.757 に答える