私は .NET 4.0 で MVC3 を使用しています。作成フォームが呼び出されると、オブジェクトが破棄されたことを示す ObjectDisposedException が発生します。この MVC3 ページ ステートメントで例外が発生します。
@Html.DropDownListFor(model => model.Country, GeneralActivity.GetCountriesMVC("NL"))
そして、呼び出されたメソッドは次のようになります。
IEnumerable<SelectListItem> GetCountriesMVC(string preselectCountryCode)
{
... some error checking code omited for simplicity ...
IEnumerable<SelectListItem> qlist;
using (Data.MyDataContext ctx = new Data.MyDataContext()) {
qlist = from p in ctx.Countries select new SelectListItem {
Text = p.CountryName,
Value = p.CountryCodeId,
Selected = (p.CountryCodeId == preselectCountryCode)
};
}
return qlist;
}
デバッグ中に、return ステートメントまで実行した後、MVC ページで @Html ステートメントを呼び出すと、例外がスローされます。
qlist インスタンスは USING ステートメントの外で宣言され、LINQ クエリによって初期化されるため、オブジェクトが破棄されたと表示される理由がわかりません。