在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
Razor 是一種伺服器端標記語言,用於使用 .NET Core 和 .NET Framework 創建動態網頁。 主要用於搭配 ASP.NET Core。 Razor Pages 是 ASP.NET Core 的一個新功能,提供了一種簡潔明了的方法來組織應用程式中的代碼,減少代碼重複的問題。 Razor 結合伺服器端使用 C# 或 VB(Visual Basic)使用 HTML 創建網頁內容。
本教程將指導您使用C#在Visual Studio中使用Razor創建一個基本應用程式。 讓我們開始!
在進入Razor的世界之前,請確保您已安裝以下內容:
.NET Core SDK
Visual Studio
這些是必要的,因為它們提供我們在本教程中將要使用的 Razor 視圖引擎和專案模板。 此外,它們可以在多個作業系統上運行,這意味著無論您使用的是 Windows、Linux 還是 macOS 都能夠使用。
打開 Microsoft Visual Studio 並按照以下步驟操作:
點擊「檔案」>「新增」>「專案」。
在專案模板選擇畫面中,選擇「Blazor Server App」。
將您的專案命名為 "IronPDFExample" 並點擊 "Create"。
從下拉選單中選擇「.NET 7.0」或更高版本。
您現在有了一個新的 Razor Pages 項目。
Razor 文件使用 .cshtml
文件擴展名,結合 C#(因而『cs』)與 HTML。 如果我們使用 Visual Basic,文件擴展名會變為 .vbhtml
。
在您的方案總管中,找到並打開名為 "Index.cshtml" 的 .cshtml
擴展名文件。 在這裡,您將看到 HTML 代碼和 C# 代碼的結合。 這種混合是由 Razor Parser 實現的。
探索 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>
在這個代碼範例中,@DateTime.Now
是一段 Razor 程式碼。 它在伺服器上執行,並在發送給客戶端之前被當前日期和時間替換。
在Razor中,“view”指的是任何旨在向使用者呈現資訊的網頁。 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>
Razor 標記允許我們在 HTML 標記中插入伺服器端代碼。我們可以使用各種代碼結構,如代碼區塊、內聯表達式和 HTML 編碼表達式。
內嵌表達式使用以下代碼將結果直接輸出到 HTML:
<p>Hello, my name is @Model.Name</p>
<p>Hello, my name is @Model.Name</p>
這裡,@Model.Name
是一個內聯表達式,從傳遞給 Razor 視圖的模型中輸出 Name 屬性的值。
代碼區塊是執行在伺服器上的程式碼片段:
@{
var name = "IronPDF";
}
<p>Hello, my name is @name</p>
@{
var name = "IronPDF";
}
<p>Hello, my name is @name</p>
在此代碼範例中,之間的 Razor 代碼{}
是一個程式碼區塊。
我們也可以在 Razor Pages 中使用控制結構,例如 if 語句和循環:
@{
var count = 5;
}
@if(count > 3){
<p>The count is greater than 3.</p>
}
@{
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>
在任何程式語言中,最簡單的程式之一就是「Hello World」。 在 Razor 中,您可以使用簡單的內聯表達式顯示「Hello World」,如下例所示:
<p>@("Hello World")</p>
<p>@("Hello World")</p>
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>
}
此 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>
Razor Pages 使用處理程序方法來管理使用者互動。 例如,要處理表單提交,我們可以在 Razor 頁面的對應頁面模型文件中創建一個名為 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");
}
Razor 也支持 C# 樣式的註解。 請記住,Razor 註解是伺服器端的,這意味著它們不會發送到瀏覽器。 它們看起來像這樣
@* This is a Razor comment *@
@* This is a Razor comment *@
這是一個多行註釋:
@*
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.
*@
Razor 視圖和頁面可以包含 HTML 註解。 這些註解會顯示在發送到瀏覽器的 HTML 輸出中。
<!-- This is an HTML comment -->
<!-- This is an HTML comment -->
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>
探索 IronPDF for .NET是一個受歡迎的函式庫,允許開發者生成從 HTML 生成 PDF、圖像,甚至現有的網頁在 .NET 中。 這是一個出色的工具,用於創建報告、發票及任何需要標準打印格式的文件。 IronPDF 在 ASP.NET MVC 和 ASP.NET Razor Pages 框架中運作完美。
首先,您需要安裝 IronPDF 套件。 您可以在 Visual Studio 的 NuGet 套件管理器主控台中執行此操作。 運行以下命令:
:PackageInstall
現在,讓我們從您的 Razor 頁面內的 HTML 代碼創建一個簡單的 PDF。 首先,讓我們在 Razor 頁面的頂部導入 IronPDF 命名空間。
@using IronPdf;
@using IronPdf;
然後,你可以使用 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);
}
}
您已成功學習了Razor C#的基礎知識,並發現如何整合IronPDF在您的應用程式中生成PDF檔案。 您首先在 Visual Studio 中創建了一個新項目,然後學習了如何使用 Razor 語法創建動態網頁。 您還探索了如何使用 IronPDF 從 HTML 代碼甚至完整的 Razor 視圖生成 PDF。
現在,隨著你繼續建立更先進的應用程式,你可以利用IronPDF提供的強大功能。 您可以免費試用 IronPDF如果您覺得有價值,可以購買適合您需求的授權。