9

私は外部アセンブリに単純なドメインモデルを持っています。このモデルはDTOを使用して、いくつかのサービスクラスと通信します。 Entity Frameworkは使用しません。ASP.NET MVC 5で外部モデルを足場にする

Visual Studio 2012では、[ビューの追加]ダイアログボックスで自分のDTOを選択し、強く型付けされたビューをスカフォールドで表示できました。しかし、のDTOは、Visual Studioに追加商品を見るダイアログで2013

Visual Studio 2013 scaffolding

厳密に型指定された私はうまく動作手動で作成するビュー、その問題のISNを示していない

Visual Studio 2012 scaffolding

Razor/MVCは私のDTOを見たり使うことができません。問題は、足場だけです。

ご協力いただければ幸いです。

+0

私はハックを思いついた。 Modelsフォルダに、私のDTOと同じプロパティを持つクラスを作成し、そこからViewsを作成しました。それから、私は各ビューに入り、モデルを自分のDTOに戻しました。私が必要とするすべてのビューを持っていたら、モデルフォルダのクラスを削除しました。まだ実際のソリューションを探しています。 –

+0

@Coryこれは重複していますかhttps://stackoverflow.com/a/20480300/495455? –

+3

[Visual Studio 2013 Pro Add Viewはモデルクラスのドロップダウンリストに参照されるデータアクセスクラスライブラリモデルを表示しません。](https://connect.microsoft.com/VisualStudio/feedback/details/809839/ビジュアルスタジオ2013プロ追加ビュー非表示の参照データアクセスクラスライブラリモデルのモデルクラスドロップダウンリスト)を含む。提案された回避策は、プロジェクト参照を使用することです。 –

答えて

0

あなたのDTOは、プロジェクト名前空間や.Models名前空間以外のどこかに住んでいます。ドロップダウンには、厳密に型指定されたビューのクラスをそこから取得する親和性があります。あなたのDTOは別のアセンブリで生きているかもしれないが、あなたのハックは何だったのか分かりませんが、他のアセンブリのMvcDemo.Models名前空間にそれらを再コンパイルし、MVCプロジェクトのモデル名前空間に部分クラスを宣言する方法はありますか?それは理想的な答えではないかもしれません。あなたがそのアイデアが気に入らなければ、私は自分の答えを喜んで削除します。

+0

パーシャルクラスは、同じ名前空間を共有していても、アセンブリをまたぐことはできません。残念ながら、これはうまくいかないと思います。 –

関連する問題