[C#]RazorアプリケーションのViewの記述方法とは?サンプルコードを用いて解説
![[C#]RazorアプリケーションのViewの記述方法とは?サンプルコードを用いて解説](/dotnet/column/wp-content/uploads/2020/08/pixta_34864428_M-960x320.jpg)
- SE
- C#でのRazorアプリケーションのViewについて教えてください。
- PM
- C#でのRazorアプリケーションのViewについていくつか紹介します。
[C#]RazorアプリのViewについて
今回は、C#でのRazorアプリケーションのViewについて説明します。Razorとは、ASP.NET MVC 3から導入されているビュー・エンジンです。自動的に作成してくれる部分があるので、効率的にWebアプリケーションの開発が可能です。
ここでは、C#でのRazorプロジェクトの作成方法、プロパティの取得方法、Viewでのif文やforeach文、メソッドの記述方法について紹介します。
統合開発環境には、Microsoft Visual Studio Community 2019 Previewを使用します。
C#でのRazorアプリケーションのViewに興味のある方はぜひご覧ください。
Razorプロジェクトの作成
C#でRazorアプリケーションのプロジェクトを作成します。
Visual Studioを起動し、「ASP.NET Core Web アプリケーション」のプロジェクトを新規作成します。次に、新しいASP.NET Core Web アプリケーション画面で「Web アプリケーション」を選択して、作成ボタンをクリックします。
Razorプロジェクトを生成すると、フォルダやファイル群が自動生成されます。Pages\Index.cshtml.csは以下のようになっています。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;
namespace RazorApplication1.Pages
{
public class IndexModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}
public void OnGet()
{
}
}
}
|
Pages\Index.cshtmlは以下のようになっています。このcshtmlファイルがMVCのViewに相当します。
1
2
3
4
5
6
7
8
9
10
|
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<div class="text-center">
<h1 class="display-4">Welcome</h1>
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>
|
Visual Studioから実行ボタン「IIS Express」をクリックするとブラウザが起動します。ブラウザには「Welcome」と表示されます。C#でRazorアプリケーションが作成できました。以降の章でViewの記述方法について紹介します。
プロパティの取得
C#でのRazorアプリケーションのViewでプロパティを取得する方法を紹介します。Pages\Index.cshtml.csを以下のように修正します。OnGetはメソッドはページを開いた際に実行されます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;
namespace WebApplication3.Pages
{
public class IndexModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
// プロパティをバインド。Getでも使用可能にする
[BindProperty(SupportsGet = true)]
public string Name { get; set; }
// 変数宣言
public string Message;
public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}
public void OnGet()
{
// 変数に値を設定
Message = "Hello";
// Nameプロパティが空の場合は「Guest」を設定
if (string.IsNullOrWhiteSpace(Name))
{
Name = "Guest";
}
}
}
}
|
Pages\Index.cshtmlを以下のように修正します。@Model.Messageなどと記述することで、Viewで値を取得できます。
1
2
3
4
5
6
7
8
9
10
|
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<div class="text-center">
<h1 class="display-4">@Model.Message @Model.Name</h1>
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>
|
実行すると、ブラウザに以下のように表示されます。
1
|
Hello Guest
|
Nameプロパティが空なのでGuestが表示されました。ブラウザのURLに、Nameプロパティを指定してみます。
https://localhost:ポート番号?Name=Taro
Enterキーをクリックすると、画面が更新されて以下のように表示されます。
1
|
Hello Taro
|
プロパティが受け渡せていることが分かります。
if文
C#でのRazorアプリケーションのViewで、if文(条件分岐)の記述方法を紹介します。Pages\Index.cshtmlに以下を追記します。
1
2
3
|
@{
var color = "red";
}
|
Pages\Index.cshtmlに、if文を以下のように記述します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<div>
@if (color == "red")
{
<p style="color:red;">red</p>
}
else if (color == "green")
{
<p style="color:green;">green</p>
}
else
{
<p>other color</p>
}
</div>
|
実行すると、赤文字でredが表示されます。
foreach文
C#でのRazorアプリケーションのViewで、foreach文(繰り返し処理)の記述方法を紹介します。Pages\Index.cshtmlに以下を追記します。
1
2
3
|
@{
var colors = new[] { "red", "green", "blue" };
}
|
Pages\Index.cshtmlに、foreach文を以下のように記述します。
1
2
3
4
5
6
|
<div>
@foreach (string color in colors)
{
<p>@color</p>
}
</div>
|
実行すると、colors配列の要素がすべて表示されます。
メソッド
C#でのRazorアプリケーションのViewで、メソッドの記述方法を紹介します。Pages\Index.cshtmlに以下を追記します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
@functions {
// 加算メソッド
int Add(int val1, int val2)
{
return val1 + val2;
}
// 減算メソッド
int Sub(int val1, int val2)
{
return val1 - val2;
}
}
|
Pages\Index.cshtmlに、メソッドの呼び出しを記述します。
1
2
3
4
|
<div>
<p>2 + 1 = @Add(2, 1)</p>
<p>2 - 1 = @Sub(2, 1)</p>
</div>
|
実行すると、メソッドの実行結果が表示されます。
- SE
- C#でのRazorアプリケーションのViewについてわかりました。
- PM
- C#でのViewについての知識を深めて、実際にコードを書いてみましょう。
まとめ
いかがでしたでしょうか。C#でのRazorアプリケーションのViewについて説明しました。ここでは、C#でのRazorプロジェクトの作成方法、プロパティの取得方法、Viewでのif文やforeach文、メソッドの記述方法について紹介しました。
ぜひご自身でC#のソースコードを書いて、理解を深めてください。
Search キーワード検索
Popular 人気の記事
-
【VB.NET入門】DataGridViewの使い方まとめ
公開: 更新:
reccomended おすすめ記事
-
【.NETが統合】.NET 5の概要と今後のリリース予定
公開: 更新:
Categories 連載一覧
Tags タグ一覧
Jobs 新着案件
-
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(新宿駅) -
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(新宿駅) -
デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円神奈川県横浜市(桜木町駅) -
デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円神奈川県横浜市(桜木町駅) -
基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(西新宿駅) -
基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(西新宿駅)