2017-01-10 7 views
-1

コントローラのアクションMETHOD-送信リスト<AnonymousType> ASP.Net MVCで

public ActionResult Index() 
{ 
    var todaysTarget = from ra in db.Employee ... 
         select new { ra.RaCode, ra.TargetQuantity }; 
    return View(todaysTarget.ToList()); 
} 

レイザー[表示] -

@model List<object> 


@foreach (var item in Model) 
{ 
    @:item.Name; 
} 

を表示するには、コントローラからそれは

このexception-私を与えます辞書には、 'System.Collections.Generic.List`1 [System.Object]'という型のモデル項目が必要です。

助けが必要ですか?あなたのビューで

+1

これはひどい考えです。ビューのポイントは、モデルに固有のものです。匿名型は使用しないでください。型を作るだけです。 –

+1

ここで匿名タイプを使用する理由は何ですか? –

+1

提供された値を表示するために使用できる汎用ビューを作成しようとすると、これは匿名型を使用する良い解決策ではありません。このタイプの機能がまだ必要な場合でも、モデルタイプ=リストまたはリストを使用し、値が文字列以外の場合は常にvalue.ToString()を渡すことをお勧めします。 これを汎用ビューにする必要がない場合は、固定タイプにする必要があります。 –

答えて

0

試してみてください。

@model List<dynamic> 

またはあなたのreturn文行う際に試してみてください。

return View(todaysTarget.Cast<object>().ToList()); 

しかし、あなたは後者をすれば、item.Name文は(Object型のエラーが発生します名前のプロパティはありません)、ダイナミックな仕事が得られるはずです。

0

これは動作するはずです。私はローカルで試しました。

@model IEnumerable<dynamic> 


<div> 
<h1> Test</h1> 

@foreach (var item in Model) 
{ 
    @item.Name; 
} 

</div> 
関連する問題