SkyoceanHome
Home
Privacy
ダウンロード
SkyShop
Updated Information
記事編集
日付
ジャンルのカテゴリ―名
名前を選択して下さい。
Contexts
Controllers
Databases
Htmls
JavaScripts
Models
MVCTutorials
Others
Styles
Views
タイトル
内容の要旨
<pre style="text-align: left;"><span style="font-size: 24px;"><strong><u>ViewDataとViewBag,を使用する、Controller側のコード例:</u></strong></span></pre><p id="isPasted" class="fr-text-gray"><strong><span style="font-size: 18px;"> <span style="color: rgb(40, 50, 78);"> </span></span></strong><span style="font-size: 18px;"><strong><span style="color: rgb(40, 50, 78);"> public async Task<IActionResult> Index()</span></strong></span></p><p style="line-height: 1;"> {</p><p id="isPasted" style="line-height: 1;"><strong> ViewBag.Articles = await _context.skyArticle.OrderByDescending(a => a.Id).ToListAsync();</strong></p><p style="line-height: 1;"><strong> ViewBag.Genres = await _context.skyGenre.OrderByDescending(a => a.Id).Skip(0).Take(3).ToListAsync();</strong></p><p style="line-height: 1;"><strong> ViewData["Journals"] = (await _context.skyArticle.OrderByDescending(a => a.Id).ToListAsync());</strong></p><p style="line-height: 1;"> return View(await _context.skyGenre.Include("skyArticles").ToListAsync());</p><p style="line-height: 1;"> }</p><hr><p><br></p><p><strong><span style="font-size: 24px;"><u>View側のコード例:</u></span></strong></p><p><strong><span style="font-size: 18px;">ViewDataを使用する場合は下記のように型変換を行う必要があります。</span></strong></p><p id="isPasted">@{</p><p> Layout = "~/Views/Shared/_JournalLayout.cshtml";</p><p> ViewData["Title"] = "Index";</p><p> <strong> IEnumerable<skyArticle> <span style="color: rgb(184, 49, 47);">articles</span> = ViewData["Journals"] as IEnumerable <skyArticle>;</strong></p><p><span style="color: rgb(0, 168, 133);"> //ViewData は、コントローラーからビューにデータを転送するために使用されます。ViewData は、文字列をキーとして使用してアクセスできる辞書オブジェクトです。</span></p><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 1rem; white-space: pre-wrap; color: rgb(65, 65, 65); font-family: sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><span style="color: rgb(0, 168, 133);"> // ViewData を使用すると、コントローラーからビューに任意のオブジェクトを渡すことができます。ビューで列挙する場合は、型変換コードが必要です。</span></p><p>}</p><p><strong>使用例:</strong></p><table style="width: 100%;"><tbody><tr><td style="width: 100.0000%;"><p id="isPasted" style="line-height: 1;"> <span style="line-height: 1;"> </span><span style="font-size: 12px; line-height: 1;"><div></span></p><p style="line-height: 1;"><span style="font-size: 12px; line-height: 1;"> @foreach(var item in</span><span style="color: rgb(184, 49, 47); font-size: 12px; line-height: 1;"> <strong>articles</strong></span><span style="font-size: 12px; line-height: 1;">)</span></p><p style="line-height: 1;"><span style="font-size: 12px; line-height: 1;"> </span><span style="color: rgb(65, 168, 95); font-size: 12px; line-height: 1;">//ViewDataの<skyArticle>を型変換されたオブジェクト<strong>articles</strong></span></p><p style="line-height: 1;"><span style="font-size: 12px; line-height: 1;"> {</span></p><p style="line-height: 1;"><span style="font-size: 12px; line-height: 1;"> <div></span></p><p style="line-height: 1;"><span style="font-size: 12px; line-height: 1;"> <img src="@item.ImageUrl" alt="..." width="100" /></span></p><p style="line-height: 1;"><span style="font-size: 12px; line-height: 1;"> </div></span></p><p style="line-height: 1;"><span style="font-size: 12px; line-height: 1;"> <div></span></p><p style="line-height: 1;"><span style="font-size: 12px; line-height: 1;"> <p>@item.Title</p></span></p><p style="line-height: 1;"><span style="font-size: 12px; line-height: 1;"> </div> </span></p><p style="line-height: 1;"><span style="font-size: 12px; line-height: 1;"> } </span></p><p style="line-height: 1;"><span style="font-size: 12px; line-height: 1;"> </div></span></p><br></td></tr></tbody></table><p><br></p><p><strong><sub><span style="font-size: 18px;">ViewBagを使用する場合は下記のようにforeach関数内でインスタンスを作成します。</span></sub></strong></p><p><br></p><table style="width: 100%;"><tbody><tr><td style="width: 100.0000%;"><p id="isPasted" style="line-height: 1;"> <span style="line-height: 1;"><div></span></p><p style="line-height: 1;"><span style="line-height: 1;"> <table></span></p><p style="line-height: 1;"><span style="line-height: 1;"> <tr></span></p><p style="line-height: 1;"><span style="line-height: 1;"> <th>Id</th></span></p><p style="line-height: 1;"><span style="line-height: 1;"> <th>Code</th></span></p><p style="line-height: 1;"><span style="line-height: 1;"> <th>Name</th></span></p><p style="line-height: 1;"><span style="line-height: 1;"> </tr></span></p><p style="line-height: 1;"><span style="line-height: 1;"> @foreach (skyGenre genre in ViewBag.Genres)</span></p><p style="line-height: 1;"><span style="line-height: 1;"> </span><span style="color: rgb(65, 168, 95); line-height: 1;"><strong>//ViewBag.Genresには</strong></span><span style="line-height: 1;"><strong id="isPasted"><span style="color: rgb(65, 168, 95);"><strong>_context.skyGenreが入っている。</strong></span></strong></span></p><p style="line-height: 1;"><span style="line-height: 1;"><strong id="isPasted"><span style="color: rgb(65, 168, 95);"> //skyGenreはModelクラスのオブジェクトを指定、genreは任意名</span></strong></span></p><p style="line-height: 1;"><span style="line-height: 1;"> {</span></p><p style="line-height: 1;"><span style="line-height: 1;"> <tr></span></p><p style="line-height: 1;"><span style="line-height: 1;"> <td>@genre.Id</td></span></p><p style="line-height: 1;"><span style="line-height: 1;"> <td>@genre.Name</td></span></p><p style="line-height: 1;"><span style="line-height: 1;"> <td> <img src="@genre.ImageUrl" alt="..." width="100" /></td></span></p><p style="line-height: 1;"><span style="line-height: 1;"> </tr></span></p><p style="line-height: 1;"><span style="line-height: 1;"> }</span></p><p style="line-height: 1;"><span style="line-height: 1;"> </table></span></p><p style="line-height: 1;"><span style="line-height: 1;"> </div></span></p></td></tr></tbody></table><p id="isPasted"><br></p><p>下図が双方の結果表示です。</p>
添付画像
画像を変更
Back to List