2017-01-22 35 views
0

Viewから次のようなメッセージが表示されています:Exceptionキーがある 'IEnumerable'タイプのViewDataアイテムがありません

「System.InvalidOperationException」種類の例外は System.Web.Mvc.dllで発生したが、ユーザーコード

追加情報で処理されませんでした:タイプ の一切のViewData項目は「IEnumerableを」ありませんそれはキー 'Profile_Id'を持っています。

ビューから

@Html.DropDownList("Profile_Id", String.Empty) 

コントローラ

public ViewResult Index(string name, string Profile_Id, int? page) 
{ 

    ... 
    ViewBag.Profile_Id = new SelectList(db.PROFILE.Where(y => y.ID== myId), "Profile_Id", "Name"); 

    return View(prof.ToPagedList(pageNumber, pageSize)); 
} 

答えて

2

私はあなたがこのエラーにこのビューがGET/indexアクションからレンダリングされた最初の時間を取得されていませんと仮定しますが代わりに、同じビューをレンダリングするPOSTアクションに対応するフォームを送信します。

[HttpPost] 
public ActionResult Index(MyViewModel model) 
{ 
    ... process the data 

    // populate the Profile_Id property because we are 
    // redisplaying the same view which depends on it in order 
    // to show the corresponding dropdown 
    ViewBag.Profile_Id = new SelectList(db.PROFILE.Where(y => y.ID== myId), "Profile_Id", "Name"); 

    return View(model); 
} 
+0

:それはそれに依存しているため、あなたが同じビューをレンダリングする場合は、あなたがGETアクションで行ったように、あなたもProfile_Idプロパティを移入あなたのPOSTアクション内部ことを確認して、このエラーを修正する

私はこれを試してみましょう。とにかく、あなたは素晴らしいプロフィールを持っています。 – Illep

関連する問題