回答編集履歴
3
Partial View に関する記述を削除した
answer
CHANGED
@@ -1,14 +1,12 @@
|
|
1
1
|
> 引用テキストcshtmlのなかで他のモデルを参照する方法を知りたいです。
|
2
2
|
|
3
3
|
ここで言う「参照」の意味をもっと明確にしてほしいところですが。。
|
4
|
-
以下、「View が
|
4
|
+
以下、「View が Model の保持する情報を表示するために『参照』する」と仮定しての回答です。
|
5
5
|
|
6
6
|
> 課題はViewです。
|
7
7
|
> Viewはcshtmlで、@のなかにC#を書けますが、PersonView.cshtmlでは、単純にModelというとPersonModelを見てしまって、CompanyModelの情報を引き出せないように思えます。
|
8
8
|
|
9
|
-
そういう風に困らないように
|
9
|
+
そういう風に困らないように Model を設計するべきです。
|
10
|
-
MVC は Web アプリケーションを構築するための枠組みで
|
10
|
+
MVC は Web アプリケーションを構築するための枠組みで、MVC における Model はビジネスドメインの設計・実装における Model とは別物であり、MVC の View と Model は1対1対応しているべきなのです。
|
11
11
|
|
12
|
-
View が
|
12
|
+
View が PersonModel だけでなく CompanyModel がもつ情報も必要(≒表示)するのであれば、PersonModel と CompanyModel をメンバとして持つ ViewModel を作って、それを View と対応付けするのが適切です。
|
13
|
-
|
14
|
-
あるいは、View と Person および Company の関係によっては Pertial View とするべきケースもありますが、要件が明確でないのでどちらが適切かは不明です。
|
2
前提を追加
answer
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
> 引用テキストcshtmlのなかで他のモデルを参照する方法を知りたいです。
|
2
2
|
|
3
3
|
ここで言う「参照」の意味をもっと明確にしてほしいところですが。。
|
4
|
+
以下、「View がモデルの保持する情報を表示するために『参照』する」と仮定しての回答です。
|
4
5
|
|
5
6
|
> 課題はViewです。
|
6
7
|
> Viewはcshtmlで、@のなかにC#を書けますが、PersonView.cshtmlでは、単純にModelというとPersonModelを見てしまって、CompanyModelの情報を引き出せないように思えます。
|
1
引用を修正
answer
CHANGED
@@ -1,12 +1,13 @@
|
|
1
|
-
>cshtmlのなかで他のモデルを参照する方法を知りたいです。
|
1
|
+
> 引用テキストcshtmlのなかで他のモデルを参照する方法を知りたいです。
|
2
2
|
|
3
3
|
ここで言う「参照」の意味をもっと明確にしてほしいところですが。。
|
4
4
|
|
5
|
-
>課題はViewです。
|
5
|
+
> 課題はViewです。
|
6
|
-
>Viewはcshtmlで、@のなかにC#を書けますが、PersonView.cshtmlでは、単純にModelというとPersonModelを見てしまって、CompanyModelの情報を引き出せないように思えます。
|
6
|
+
> Viewはcshtmlで、@のなかにC#を書けますが、PersonView.cshtmlでは、単純にModelというとPersonModelを見てしまって、CompanyModelの情報を引き出せないように思えます。
|
7
7
|
|
8
8
|
そういう風に困らないようにモデルを設計するべきです。
|
9
9
|
MVC は Web アプリケーションを構築するための枠組みであり、MVC におけるモデルはビジネスドメインにおけるモデルとは別物と捉えるべきです。
|
10
10
|
|
11
|
-
View が Person だけでなく Company がもつ情報も必要(≒表示)するのであれば、Person と Company をメンバとして持つ ViewModel を作って、それを View にあてがう
|
11
|
+
View が Person だけでなく Company がもつ情報も必要(≒表示)するのであれば、Person と Company をメンバとして持つ ViewModel を作って、それを View にあてがうのが適切です。
|
12
|
+
|
12
13
|
あるいは、View と Person および Company の関係によっては Pertial View とするべきケースもありますが、要件が明確でないのでどちらが適切かは不明です。
|