質問

私は.NET 4.0でMVC3を使用しています。このMVC3ページの例外ocurrs:

@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インスタンスは、使用文の外部で宣言され、LINQクエリによって初期化されているので、オブジェクトが配置されているのかわかりません。

役に立ちましたか?

解決

実際にはクエリを実行していません。

メモリに格納されるようにクエリをリストにキャストしてみてください。

 qlist = (from p in ctx.Countries select new SelectListItem {
      Text = p.CountryName,
      Value = p.CountryCodeId,
      Selected = (p.CountryCodeId == preselectCountryCode)
  }).ToList();
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top