.NET ヘルプ

Razor C#(開発者向けの仕組み)

公開済み 2023年5月30日
共有:

Razorは、.NET Coreおよび.NET Frameworkで動的なウェブページを作成するために使用されるサーバーサイドのマークアップ言語です。 主にASP.NET Coreと連携して使用されます。 Razor PagesはASP.NET Coreの新しい機能で、アプリケーション内のコードをすっきりとわかりやすく整理し、コードの重複を減らします。 Razorは、C#またはVBを使用してサーバーサイドと統合します。(ビジュアルベーシック)HTMLを使用してウェブコンテンツを作成する。

このチュートリアルでは、Visual StudioでC#を使用してRazorの基本的なアプリケーションを作成する方法を説明します。 始めましょう!

前提条件

Razorの世界に入る前に、以下をインストールしていることを確認してください:

  1. .NET Core SDK (ソフトウェア開発キット)

  2. ビジュアルスタジオ

    これらは、Razor View Engineと、このチュートリアルで使用するプロジェクトテンプレートを提供するために必要です。 また、これらは複数のオペレーティングシステムで動作するため、Windows、Linux、またはmacOSを使用している場合でも利用できます。

ステップ 1 新しい Razor Pages プロジェクトの作成

Microsoft Visual Studio を開き、以下の手順に従ってください:

  1. 「ファイル」>「新規」>「プロジェクト」をクリックします。

  2. プロジェクトテンプレート選択画面で、「Blazor Server App」を選択してください。

    Razor C#(開発者向けの動作方法)図1

  3. プロジェクト名を「IronPDFExample」にして、「作成」をクリックしてください。

    Razor C#(開発者のための仕組み) 図2

  4. ドロップダウンメニューから「.NET 7.0」以降を選択してください。

    Razor C#(開発者向けの仕組み) 図3

    Razor Pages プロジェクトが新たに作成されました。

Razor構文とファイルの理解

Razorファイルは、C#を組み合わせた.cshtmlファイル拡張子を使用します。(したがって「cs」となります)HTMLを使用して。 Visual Basicを使用している場合、ファイル拡張子は.vbhtmlに変更されます。

ソリューションエクスプローラーで、"Index.cshtml"という名前の.cshtml拡張子のファイルを見つけて開きます。 ここでは、HTMLコードとC#コードの組み合わせを見ることができます。 このミキシングはRazor Parserによって可能になっています。

Razor構文

ASP.NET CoreのRazor構文を調べるHTMLとサーバーの組み合わせです。 サーバーコードはC#またはVBコードです。 Razorコードは@シンボルで表され、HTMLがクライアントに送信される前にサーバーで実行されます。

シンプルなRazor構文の一例:

<p>The current time is @DateTime.Now</p>
<p>The current time is @DateTime.Now</p>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<p> The current time is @DateTime.Now</p>
VB   C#

このコード例では、@DateTime.Now はRazorコードです。 サーバーで実行され、クライアントに送信される前に現在の日付と時刻に置き換えられます。

Razorビューレンダリング

Razorにおける「ビュー」という用語は、ユーザーに情報を提供することを目的とした任意のウェブページに対応します。 Razor View Engineは、HTMLページをユーザーにレンダリングする役割を担っています。

@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>
@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>
page model ReadOnly Property () As IndexModel
	ViewData ("Title") = "Home page"
End Property

'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<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>
VB   C#

Razorマークアップを使用した動的コンテンツ

Razorマークアップを使用することで、HTMLマークアップ内にサーバーサイドコードを挿入できます。コードブロック、インライン式、HTMLエンコード式など、さまざまなコード構造を使用できます。

インライン式

インライン式は、次のコードを使用して結果を直接HTMLに出力します:

<p>Hello, my name is @Model.Name</p>
<p>Hello, my name is @Model.Name</p>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<p> Hello, my name is @Model.Name</p>
VB   C#

ここで、@Model.Name はインライン式であり、Razorビューに渡されたモデルから Name プロパティの値を出力します。

コードブロック

コードブロックは、サーバで実行されるコードのセグメントです。

@{
    var name = "IronPDF";
}
<p>Hello, my name is @name</p>
@{
    var name = "IronPDF";
}
<p>Hello, my name is @name</p>
@
If True Then
	Dim name = "IronPDF"
End If
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<p> Hello, my name is @name</p>
VB   C#

以下のコード例では、`{}``` IronPDFは、HTML、ASP.NET、MVCおよび画像からPDFドキュメントへの変換を可能にする.NETライブラリです。IronPDF for .NETは、WebアプリケーションにおいてPDFの生成、編集、セキュリティの設定が簡単に行えます。Iron Softwareが提供するこのツールは、開発者が.NETアプリケーションで力強いPDF機能を利用することを可能にします。

主要機能:

  • HTML、URL、または画像をPDFに変換
  • 既存のPDFを読み込み、編集
  • テキスト、画像、ハイパーリンクの追加
  • PDFのセキュリティ設定と暗号化

豊富なライセンスオプション:

  • Lite License
  • Plus License
  • Professional License
  • Unlimited License

IronOCRは、画像やPDFファイルからテキストを抽出するための光学文字認識エンジンです。IronOCR for .NETは、高精度なテキスト認識を実現し、開発者がアプリケーションにOCR機能を追加するのを支援します。

IronXLは、Excelファイルの操作を簡単にするための.NETライブラリです。IronXL for .NETは、Excelデータの読み書き、セルのフォーマット、数式計算などの機能を提供します。

IronBarcodeとIronQRは、バーコードとQRコードの生成と読み取りをサポートするツールです。これらのツールを利用することで、在庫管理や製品トラッキングに容易に組み込むことができます。

IronZIPは、圧縮および解凍の機能を提供する.NETライブラリです。IronZIP for .NETを使用することで、ファイルの圧縮と解凍が簡単に行えます。

IronWordは、DOCXおよびその他のWord文書の生成、編集、変換を可能にするライブラリです。IronWord for .NETは、Word文書の操作をシンプルかつ効率的にします。

IronWebScraperは、ウェブスクレイピングを容易にするためのツールです。IronWebScraper for .NETは、ウェブサイトからのデータ収集を自動化し、効率的に情報を取得できます。

Iron Suiteは、以上すべてのライブラリを含む包括的なツールセットです。Iron Suite for .NETおよびIron Suite Unlimitedは、開発者にとって強力な開発環境を提供します。


### 制御構造

Razor Pagesでは、if文やループといった制御構造も使用できます。

```cs
@{
    var count = 5;
}

@if(count > 3){
    <p>The count is greater than 3.</p>
}

上記のコード例では、if ステートメントはサーバー側のコードの一部であり、サーバー上で実行され、その出力は生成されるHTMLページに挿入されます。

スイッチ文

Switch文は、C#プログラミング言語における条件分岐制御構造の一種です。 コードブロック内で使用できます。

@{
    var fileFormat = "PDF";
    var message = "";

    switch (fileFormat) 
    {
        case "PDF":
            message = "You selected PDF.";
            break;
        default:
            message = "Invalid selection.";
            break;
    }
}

<p>@message</p>
@{
    var fileFormat = "PDF";
    var message = "";

    switch (fileFormat) 
    {
        case "PDF":
            message = "You selected PDF.";
            break;
        default:
            message = "Invalid selection.";
            break;
    }
}

<p>@message</p>
@
If True Then
	Dim fileFormat = "PDF"
	Dim message = ""

	Select Case fileFormat
		Case "PDF"
			message = "You selected PDF."
		Case Else
			message = "Invalid selection."
	End Select
End If

'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<p> @message</p>
VB   C#

RazorでのHello World

どんなプログラミング言語でも最も簡単なプログラムの一つは「Hello World」です。 Razorでは、以下の例に示すように、シンプルなインライン式を使用して「Hello World」を表示できます。

<p>@("Hello World")</p>
<p>@("Hello World")</p>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<p> @("Hello World")</p>
VB   C#

Razorでのループ

Razor構文を使用すると、foreach文のようなループを書くことができます。 あなたのウェブページに表示したい名前のリストがあるとします。 それは、Razor構文のforeachステートメントを使用して実現できます。

@{
    var names = new List<string>{"John", "Doe", "Smith"};
}

@foreach(var name in names)
{
    <p>@name</p>
}
@{
    var names = new List<string>{"John", "Doe", "Smith"};
}

@foreach(var name in names)
{
    <p>@name</p>
}
@
If True Then
	Dim names = New List(Of String) From {"John", "Doe", "Smith"}
End If

'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'@foreach(var name in names)
'{
'	<p> @name</p>
'}
VB   C#

このforeachステートメントはリスト内の各名前をループして、ウェブページに出力します。

タグヘルパーの理解

ASP.NET MVCのタグヘルパーは、サーバーサイドのコードがRazorファイル内でHTML要素を作成およびレンダリングすることを可能にします。 それらはHTMLヘルパーに似ていますが、よりHTMLに近い構文を持っています。 それらはRazorビュー内のHTMLライクな要素を、クライアントのブラウザへ送られるHTMLマークアップに変換します。 以下のアンカータグ ヘルパーのコード例を考慮してください:

<a asp-controller="Home" asp-action="Index">Home</a>
<a asp-controller="Home" asp-action="Index">Home</a>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<a asp-controller="Home" asp-action="Index"> Home</a>
VB   C#

ユーザーインタラクションの処理

Razor Pagesは、ユーザーインタラクションを管理するためにハンドラーメソッドを使用します。 たとえば、フォームの送信を処理するために、対応するPage ModelファイルにOnPostAsyncという名前のメソッドを作成することができます。

public async Task<IActionResult> OnPostAsync()
{
    if (!ModelState.IsValid)
    {
        return Page();
    }

    // Perform some operation here

    return RedirectToPage("./Index");
}
public async Task<IActionResult> OnPostAsync()
{
    if (!ModelState.IsValid)
    {
        return Page();
    }

    // Perform some operation here

    return RedirectToPage("./Index");
}
Public Async Function OnPostAsync() As Task(Of IActionResult)
	If Not ModelState.IsValid Then
		Return Page()
	End If

	' Perform some operation here

	Return RedirectToPage("./Index")
End Function
VB   C#

Razorのコメント

Razor も C#スタイルのコメントに対応しています。 忘れないでください、Razorコメントはサーバー側のものであり、ブラウザには送信されません。 それらはこのように見えます

@* This is a Razor comment *@
@* This is a Razor comment *@
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'@* This is a Razor comment *@
VB   C#

これはマルチラインコメントです:

@*
    This is a multi-line Razor comment.
    It's useful when you have a lot to say.
*@
@*
    This is a multi-line Razor comment.
    It's useful when you have a lot to say.
*@
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'@* This is a multi-line Razor comment.It's useful @when you have a lot @to say. *@
VB   C#

RazorビューおよびページにはHTMLコメントを含めることができます。 これらのコメントは、ブラウザに送信されるHTML出力で表示されます。

<!-- This is an HTML comment -->
<!-- This is an HTML comment -->
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<!-- This is an HTML comment -- >
VB   C#

Razorページにモデルを渡す

Razorを使用すると、サーバーからページにモデルを渡すことができます。 @model ディレクティブは、渡されるオブジェクトの型を指定するために使用されます。 このモデルプロパティは、以下の例に示すようにRazorページでアクセスできます。

@page
@model ExampleModel

<h2>@Model.Title</h2>
<p>@Model.Description</p>
@page
@model ExampleModel

<h2>@Model.Title</h2>
<p>@Model.Description</p>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'@page @model ExampleModel <h2> @Model.Title</h2> <p> @Model.Description</p>
VB   C#

RazorでIronPDFを使用してPDFを生成

IronPDF for .NETを見る人気のライブラリであり、開発者が生成することを可能にしますHTMLからのPDF.NET で画像や既存のウェブページを変換します。 レポート、請求書、および標準的な印刷フォーマットが必要なその他のドキュメントを作成するための優れたツールです。 IronPDFは、ASP.NET MVCおよびASP.NET Razor Pagesフレームワーク内で完璧に動作します。

インストール

まず、IronPDFパッケージをインストールする必要があります。 これは、Visual Studio の NuGet パッケージマネージャー コンソールから実行できます。 次のコマンドを実行します:

:PackageInstall

シンプルなPDFを作成する

それでは、Razor Page内のHTMLコードから簡単なPDFを作成してみましょう。 まず、Razorページの先頭にIronPDF名前空間をインポートしましょう。

@using IronPdf;
@using IronPdf;
Dim IronPdf As [using]
VB   C#

次に、IronPDFを使用してPDFを作成できます。 Razorページにボタンがあり、クリックするとシンプルなPDFを作成するとします。

対応するハンドラーをページモデルファイルに追加するために、次のコードを追加できます。

@page "/pdf"
@using IronPdf;
@inject IJSRuntime JS

<PageTitle>Create PDF</PageTitle>

<h1>Create PDF</h1>

<div class="form-outline">
    <button class="btn btn-primary mt-3" @onclick="CreatePDF">Create PDF</button>
</div>

@code {
    private string htmlString { get; set; }

    private async Task CreatePDF()
    {

        var Renderer = new IronPdf.ChromePdfRenderer();
        Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A2;

        var doc = Renderer.RenderUrlAsPdf("https://ironpdf.com/");

        using var Content = new DotNetStreamReference(stream: doc.Stream);

        await JS.InvokeVoidAsync("SubmitHTML", "ironpdf.pdf", Content);
    }
}
@page "/pdf"
@using IronPdf;
@inject IJSRuntime JS

<PageTitle>Create PDF</PageTitle>

<h1>Create PDF</h1>

<div class="form-outline">
    <button class="btn btn-primary mt-3" @onclick="CreatePDF">Create PDF</button>
</div>

@code {
    private string htmlString { get; set; }

    private async Task CreatePDF()
    {

        var Renderer = new IronPdf.ChromePdfRenderer();
        Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A2;

        var doc = Renderer.RenderUrlAsPdf("https://ironpdf.com/");

        using var Content = new DotNetStreamReference(stream: doc.Stream);

        await JS.InvokeVoidAsync("SubmitHTML", "ironpdf.pdf", Content);
    }
}
Private page "/pdf" [using] IronPdf
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: inject IJSRuntime JS <PageTitle> Create PDF</PageTitle> <h1> Create PDF</h1> <div class="form-outline"> <button class="btn btn-primary mt-3" onclick="CreatePDF"> Create PDF</button> </div> @code
"btn btn-primary mt-3" onclick="CreatePDF"> Create PDF</button> </div> code
Private Friend IJSRuntime As inject
	Private Property htmlString() As String

	Private Async Function CreatePDF() As Task

		Dim Renderer = New IronPdf.ChromePdfRenderer()
		Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A2

		Dim doc = Renderer.RenderUrlAsPdf("https://ironpdf.com/")

		Dim Content = New DotNetStreamReference(stream:= doc.Stream)

		Await JS.InvokeVoidAsync("SubmitHTML", "ironpdf.pdf", Content)
	End Function
End Class
VB   C#

出力

Razor C#(開発者向けの動作方法)図4

Razor C#(開発者向けの動作説明)図5

結論

Razor C# の基本を習得し、統合方法を発見しましたIronPDFアプリケーション内でPDFファイルを生成します。 あなたはVisual Studioで新しいプロジェクトを作成し、Razor構文を使用して動的なウェブページを作成する方法を学びました。 以下の内容を日本語に翻訳してください:

IronPDFを使用してHTMLコードや完全なRazorビューからPDFを生成する方法も探りました。

さて、より高度なアプリケーションの構築を続けていく中で、IronPDFが提供する強力な機能を活用することができます。 Here is the translation of the provided text into Japanese:

あなたはIronPDFを無料で試すまた、価値があると判断された場合は、ニーズに適したライセンスを購入することができます。

< 以前
Vim for Windows(開発者向けの動作方法)
次へ >
C# 秒数を待機する方法(開発者向け)