2

MVC のビューの 1 つに強く型付けされたモデルを作成しようとしています。モデルは LINQ GroupBy クエリの結果であるため、以下に示す型になります (従業員を姓の最初の文字でグループ化)。

@model IQueryable<IGrouping<string, Employee>>

理由はわかりませんが、このタイプのモデルを作成できません。表示されるエラー メッセージは次のとおりです。これは正しくありません。

ビュー固有のモデルを作成して、代わりにデータを入力できることはわかっていますが、このモデルが機能していないように見える理由を知りたいですか?

4

2 に答える 2

3

既定では、非常に限られた名前空間のセットが Razor ビューで直接使用できます。完全修飾名に展開して、問題が解決しないかどうかを確認してください。

@model System.Linq.IQueryable<System.Linq.IGrouping<string, Name.Space.Employee>>
于 2012-04-08T17:21:01.380 に答える
1

正しい Razor コードを使用しているように見えるので、なぜこのエラーが発生するのかわかりません。ページのどこかに実際にバグがあり、この誤ったエラー メッセージによって明らかになる可能性があります。

バグの本当の原因を特定するのに役立つ可能性がある回避策は、独自の厳密に型指定されたモデル クラスを作成することです。これは、このデータをプロパティとして持つことができます。

public class EmployeeListViewModel
{
    public IQueryable<IGrouping<string, Employee>> EmployeesByCompanyTitle {get;set;}
}

(ビューモデルにより簡単に情報を追加できるようになったので、とにかくこれがより良いアプローチであると主張する人がいます。)

于 2012-04-08T17:23:01.520 に答える