C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: ASP.NETのビュー内で定義するModelについて


(過去ログ 118 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■69112 / inTopicNo.1)  ASP.NETのビュー内で定義するModelについて
  
□投稿者/ 悩み多きランナー (1回)-(2013/12/04(Wed) 23:47:00)

分類:[ASP.NET (C#)] 

コントローラクラス内で処理した結果(例えばアクションメソッドへ連携された引数に一致するレコードをテーブルから抽出等)をViewへ返す場合(return View(オブジェクト.First)等)、
そのアクションメソッドに紐づくViewへ渡ると思います。
そこで値を画面に出力する際にasp.netのサイトを確認すると<%= Html.Encode(Model.title) %>としてModelを定義してますが、コントローラで作成されたオブジェクトにある値を
取得する際には"Model.値"という記述をするのでしょうか?
このModelはViewDataDictionaryクラスのプロパティを指すのでしょうか?

よろしくお願い致します。
引用返信 編集キー/
■69141 / inTopicNo.2)  Re[1]: ASP.NETのビュー内で定義するModelについて
□投稿者/ WebSurfer (101回)-(2013/12/06(Fri) 00:45:28)
No69112 (悩み多きランナー さん) に返信

「ビュー内で定義するModel」とは具体的に何を意味しているのでしょうか?
引用返信 編集キー/
■69167 / inTopicNo.3)  Re[2]: ASP.NETのビュー内で定義するModelについて
□投稿者/ 悩み多きランナー (2回)-(2013/12/06(Fri) 23:24:39)
No69141 (WebSurfer さん) に返信
> ■No69112 (悩み多きランナー さん) に返信
>
> 「ビュー内で定義するModel」とは具体的に何を意味しているのでしょうか?

下記のサイトのリスト3を確認すると
http://www.atmarkit.co.jp/ait/articles/0905/22/news117_2.html

<% For Each item In Model%>と定義されてますが、Booksオブジェクトを渡しているので「<% For Each item In Books%>」と
定義するのが自然かと思ったのですがModelと定義されており、どのような意味なのかいまいち理解ができません。
なのでビュー内で定義するモデルとは<% For Each item In Model%>のModelを指していたり
上記サイトの次のページで示してある<%=Html.Encode(Model.isbn)%>のModelとは具体的にどういうことを指しているのか
教えていただきたいです。基本的にビュー内で値の取得の際は一般的にModel.isbnのような記述をするのでしょうか?


わかりにくい説明で申し訳ありません。
引用返信 編集キー/
■69170 / inTopicNo.4)  Re[3]: ASP.NETのビュー内で定義するModelについて
□投稿者/ WebSurfer (104回)-(2013/12/07(Sat) 13:41:30)
No69167 (悩み多きランナー さん) に返信
> ■No69141 (WebSurfer さん) に返信
>>■No69112 (悩み多きランナー さん) に返信
>>
>>「ビュー内で定義するModel」とは具体的に何を意味しているのでしょうか?
>
> 下記のサイトのリスト3を確認すると
> http://www.atmarkit.co.jp/ait/articles/0905/22/news117_2.html
>
> <% For Each item In Model%>と定義されてますが、Booksオブジェクトを渡しているので「<% For Each item In Books%>」と
> 定義するのが自然かと思ったのですがModelと定義されており、どのような意味なのかいまいち理解ができません。
> なのでビュー内で定義するモデルとは<% For Each item In Model%>のModelを指していたり
> 上記サイトの次のページで示してある<%=Html.Encode(Model.isbn)%>のModelとは具体的にどういうことを指しているのか
> 教えていただきたいです。基本的にビュー内で値の取得の際は一般的にModel.isbnのような記述をするのでしょうか?

参照されているサイトのリスト 3 にある Model は ViewPage<TModel>.Model
プロパティです。( VB.NET の場合は ViewPage(Of TModel).Model )

ViewPage<TModel>.Model プロパティ
http://msdn.microsoft.com/ja-jp/library/dd492184(v=vs.108).aspx


ページディレクティブ(リスト 3 の一番上の行)で、

Inherits="System.Web.Mvc.ViewPage<IEnumerable<MvcAppCs.Models.Book>>"

と継承が宣言されているところがポイントで(C# のコードの方です)、

<% foreach (var item in Model) { %>

において、Model は IEnumerable<MvcAppCs.Models.Book>(即ち Book のコレ
クション)、item は個々の Book になります。

Inherits 属性の宣言によって、ディクショナリまたはモデルを通じて、ビュー
がデータを受け取ることができるようになります(・・・と、マイクロソフト
公式解説書「プログラミング ASP.NET MVC」に書いてありました)。
引用返信 編集キー/
■69202 / inTopicNo.5)  Re[4]: ASP.NETのビュー内で定義するModelについて
□投稿者/ 悩み多きランナー (3回)-(2013/12/09(Mon) 19:10:49)
No69170 (WebSurfer さん) に返信
> ■No69167 (悩み多きランナー さん) に返信
>>■No69141 (WebSurfer さん) に返信
> >>■No69112 (悩み多きランナー さん) に返信
> >>
> >>「ビュー内で定義するModel」とは具体的に何を意味しているのでしょうか?
>>
>>下記のサイトのリスト3を確認すると
>>http://www.atmarkit.co.jp/ait/articles/0905/22/news117_2.html
>>
>><% For Each item In Model%>と定義されてますが、Booksオブジェクトを渡しているので「<% For Each item In Books%>」と
>>定義するのが自然かと思ったのですがModelと定義されており、どのような意味なのかいまいち理解ができません。
>>なのでビュー内で定義するモデルとは<% For Each item In Model%>のModelを指していたり
>>上記サイトの次のページで示してある<%=Html.Encode(Model.isbn)%>のModelとは具体的にどういうことを指しているのか
>>教えていただきたいです。基本的にビュー内で値の取得の際は一般的にModel.isbnのような記述をするのでしょうか?
>
> 参照されているサイトのリスト 3 にある Model は ViewPage<TModel>.Model
> プロパティです。( VB.NET の場合は ViewPage(Of TModel).Model )
>
> ViewPage<TModel>.Model プロパティ
> http://msdn.microsoft.com/ja-jp/library/dd492184(v=vs.108).aspx
>
>
> ページディレクティブ(リスト 3 の一番上の行)で、
>
> Inherits="System.Web.Mvc.ViewPage<IEnumerable<MvcAppCs.Models.Book>>"
>
> と継承が宣言されているところがポイントで(C# のコードの方です)、
>
> <% foreach (var item in Model) { %>
>
> において、Model は IEnumerable<MvcAppCs.Models.Book>(即ち Book のコレ
> クション)、item は個々の Book になります。
>
> Inherits 属性の宣言によって、ディクショナリまたはモデルを通じて、ビュー
> がデータを受け取ることができるようになります(・・・と、マイクロソフト
> 公式解説書「プログラミング ASP.NET MVC」に書いてありました)。

WebSurferさん

お教えいただいてありがとうございます。
Inherits 属性の宣言によってモデルよりデータを受け取れるんですね。

Viewは雛形があるのである程度コードも自動生成されるのでInherit属性を
意識してませんでした。勉強になりました。



引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -