2

プロジェクトをアップグレードした後、突然、生成された「_createoredit.cshtml」ファイルが次のように爆発します。

ディクショナリに渡されたモデル項目は null ですが、このディクショナリには 'System.Int32' 型の null 以外のモデル項目が必要です。説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.InvalidOperationException: ディクショナリに渡されたモデル アイテムは null ですが、このディクショナリには 'System.Int32' 型の null 以外のモデル アイテムが必要です。

ソース エラー:

Line 273:</div> 
Line 274:<div class="editor-field"> 
Line 275:@Html.EditorFor(model => model.NumOfStores)
Line 276:@Html.ValidationMessageFor(model => model.NumOfStores)
Line 277:</div>

参照するフィールドは、null 許容の int 型です。これは以前は機能していました (製品版はまだ正常に動作しています)。プロジェクトに加えた変更は、これが使用するものに影響を与えるべきではありませんでした。

更新 1- モデルからフィールド定義を追加

[DisplayName("Number of Stores (if applicable)")]
public Nullable<int> NumOfStores { get; set; }

また、すべての null 許容値型で同じ問題が発生していることを確認しました。

4

2 に答える 2

1

テンプレートの名前を指定してみてください。

@Html.EditorFor(model => model.NumOfStores, "NumStoresTemplate")

詳細情報(MVC 2からですが、あなたの状況に当てはまると思います) http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates.html

于 2011-11-29T16:24:03.177 に答える
0

これを機能させるために、int32 と double のカスタム エディター テンプレートを追加しました。私が取り組んでいるプロジェクトにテレリック コントロールが追加されていることに気付きました。デバッグの方法がわからないので、デフォルトのテンプレートに何らかの形で関与しているようです。

于 2011-11-30T22:57:21.593 に答える