最新的Web開發教程
 

ASP.NET剃須刀 - C#和VB代碼語法


Razor支持C# (C sharp)和VB (Visual Basic)


主要Razor語法規則為C#

  • Razor代碼塊被封閉在@ {...}
  • 內聯表達式(variables and functions)開始與@
  • 代碼語句結束與分號
  • 變量的聲明與var關鍵字
  • 字符串括加上引號
  • C#代碼是大小寫敏感的
  • C#文件的擴展名為.cshtml

C#實施例

<!-- Single statement block -->
@{ var myMessage = "Hello World"; }

<!-- Inline expression or variable -->
<p>The value of myMessage is: @myMessage </p>

<!-- Multi-statement block -->
@{
var greeting = "Welcome to our site!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Here in Huston it is: " + weekDay;
}

<p>The greeting is: @greetingMessage </p>
運行示例»

主要Razor語法規則VB

  • Razor代碼塊被封閉在@code ...結束碼
  • 內聯表達式(variables and functions)開始與@
  • 變量的聲明與Dim關鍵字
  • 字符串括加上引號
  • VB代碼不區分大小寫
  • VB文件的擴展名為.vbhtml

<!-- Single statement block  --> 
@Code dim myMessage = "Hello World" End Code
 
<!-- Inline expression or variable --> 
<p>The value of myMessage is: @myMessage </p> 
 
<!-- Multi-statement block --> 
@Code
dim greeting = "Welcome to our site!" 
dim weekDay = DateTime.Now.DayOfWeek 
dim greetingMessage = greeting & " Here in Huston it is: " & weekDay
End Code


<p>The greeting is: @greetingMessage </p>
運行示例»

它是如何工作的?

Razor是在網頁中嵌入服務器代碼的簡單編程語法。

Razor語法基於ASP.NET框架,這是專門用於創建Web應用程序設計的Microsoft.NET框架的一部分。

Razor語法為您提供了ASP.NET的所有功能,但使用簡化的語法更容易學習,如果你是一個初學者,讓你更有效率,如果你是一個專家。

Razor網頁可謂HTML頁面兩種類型的內容:HTML內容和Razor代碼。

當服務器讀取頁面,它運行的Razor第一個代碼,它發送的HTML頁面的瀏覽器。 即在服務器上執行的代碼可以執行無法在瀏覽器中完成的任務,例如訪問服務器數據庫。 服務器代碼可以動態地創建動態HTML內容,然後再發送到瀏覽器。 從瀏覽器中看到的,由服務器代碼生成的HTML並不比靜態的HTML內容的不同。

ASP.NET網頁用Razor語法有專門的文件擴展名CSHTML ( Razor using C#)或vbhtml ( Razor using VB)


正與對象

服務器編碼往往涉及對象。

"DateTime"的對象是內置的ASP.NET對象的典型,但對象也可以是自定義的,網頁,文本框,文件,數據庫記錄等。

對象可以有他們可以執行的方法。 數據庫記錄可能有"Save"方法,圖像對象可能有一個"Rotate"的方法,電子郵件的對象可能有一個"Send"的方法,等等。

對象還具有描述其特性的屬性。 數據庫記錄可能有一個名字和姓氏屬性(amongst others)

在ASP.NET DateTime對象有一個現在性能(written as DateTime.Now)而現在酒店有Day屬性(written as DateTime.Now.Day) 下面的例子說明了如何訪問DateTime對象的某些性質:

<table border="1">
<tr>
<th width="100px">Name</th>
<td width="100px">Value</td>
</tr>
<tr>
<td>Day</td><td> @DateTime.Now.Day </td>
</tr>
<tr>
<td>Hour</td><td> @DateTime.Now.Hour </td>
</tr>
<tr>
<td>Minute</td><td> @DateTime.Now.Minute </td>
</tr>
<tr>
<td>Second</td><td> @DateTime.Now.Second </td>
</tr>
</td>
</table>
運行示例»

如果和Else條件

動態網頁的一個重要特點是,你可以決定根據條件什麼。

要做到這一點的常用方法是用if ... else語句:

@{
var txt = "";
if(DateTime.Now.Hour > 12)
  {txt = "Good Evening";}
else
  {txt = "Good Morning";}
}
<html>
<body>
<p>The message is @txt </p>
</body>
</html>
運行示例»

讀取用戶輸入

動態網頁的另一個重要特點是,你可以讀取用戶輸入。

輸入由請求[]功能,和張貼讀取(input)由IsPost條件進行測試:

@{
var totalMessage = "";
if(IsPost)
    {
    var num1 = Request["text1"];
    var num2 = Request["text2"];
    var total = num1.AsInt() + num2.AsInt();
    totalMessage = "Total = " + total;
    }
}

<html>
<body style="background-color: beige; font-family: Verdana, Arial;">
<form action="" method="post">
<p><label for="text1">First Number:</label><br>
<input type="text" name="text1" /></p>
<p><label for="text2">Second Number:</label><br>
<input type="text" name="text2" /></p>
<p><input type="submit" value=" Add " /></p>
</form>
<p> @totalMessage </p>
</body>
</html>
運行示例»