ASP.NET Razor - Γλώσσα κώδικα C# και VB

Η Razor υποστηρίζει ταυτόχρονα C# (C sharp) και VB (Visual Basic).

Οι κύριες γραμματικές κανόνες του C#

  • Οι κώδικες της Razor περιβάλλονται από @{ ... }
  • Οι εξωτερικές εκφράσεις (μεταβλητές και λειτουργίες) ξεκινούν με το @
  • Οι γραμμές κώδικα τελειώνουν με σemicolon
  • Οι αλφαριθμητικές αλυσίδες περιβάλλονται από εισαγωγικά
  • Ο κώδικας C# είναι ευαίσθητος στις περικοπές
  • Η επέκταση του αρχείου C# είναι .cshtml

Παράδειγμα C#

<!-- Κώδικας γραμμής -->
@{ var myMessage =	"Hello World"; }
<!-- Εξέφραση γραμμής ή μεταβλητή -->
<pΗ τιμή του myMessage είναι: @myMessage</p> 
<!-- Κώδικας πολλαπλών γραμμών -->
@{
var greeting = "Welcome to our site!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Here in Huston it is: " + weekDay;
}
<p>Η γειά σας είναι: @greetingMessage</p>

Εκτέλεση Παραδείγματος

Οι κύριες γραμματικές κανόνες της VB

  • Οι κώδικες της Razor περιβάλλονται από @Code ... End Code
  • Οι εξωτερικές εκφράσεις (μεταβλητές και λειτουργίες) ξεκινούν με το @
  • Οι μεταβλητές δηλώνονται με τη λέξη-κλειδί Dim
  • Οι αλφαριθμητικές αλυσίδες περιβάλλονται από εισαγωγικά
  • Η VB δεν είναι ευαίσθητη στις περικοπές
  • Η επέκταση του αρχείου VB είναι .vbhtml

Παράδειγμα

<!-- Κώδικας γραμμής -->
@Code dim myMessage = "Hello World" End Code
<!-- Εξέφραση γραμμής ή μεταβλητή -->
<pΗ τιμή του myMessage είναι: @myMessage</p> 
<!-- Κώδικας πολλαπλών γραμμών -->
@Code
dim greeting = "Welcome to our site!" 
dim weekDay = DateTime.Now.DayOfWeek 
dim greetingMessage = greeting & " Here in Huston it is: " & weekDay
Τέλος Κώδικα 
<p>Η γειά σας είναι: @greetingMessage</p>

Εκτέλεση Παραδείγματος

Πώς λειτουργεί;

Η γλώσσα γραφής Razor είναι μια απλή γλώσσα προγραμματισμού που χρησιμοποιείται για την ενσωμάτωση κώδικα στο πίσω μέρος της σελίδας.

Η γλώσσα γραφής Razor βασίζεται στον πλαισίο ASP.NET, το οποίο είναι ένα μέρος του .NET πλαισίου της Microsoft, ειδικά σχεδιασμένο για την ανάπτυξη εφαρμογών ιστού.

Η γλώσσα γραφής Razor δίνει όλες τις δυνατότητες του ASP.NET, αλλά χρησιμοποιεί απλύτερη γραμματική, οπότε είναι πιο εύκολο να μάθει ένας αρχάριος και πιο ευνοϊκή για την αύξηση της παραγωγικότητας για έναν ειδικό.

Razor web pages can be described as HTML pages with two types of content: HTML content and Razor code.

When the server reads this type of page, it will first run the Razor code before sending the HTML page to the browser. This code executed on the server can complete tasks that cannot be completed in the browser, such as accessing the server database. Server code can create dynamic HTML content before the page is sent to the browser. From the browser's point of view, the HTML generated by the server code is indistinguishable from static HTML content.

ASP.NET web pages using Razor syntax have special file extensions cshtml (using C# Razor syntax) or vbhtml (using VB Razor).

Dealing with objects

Server code often involves objects.

"Date" object is a typical ASP.NET built-in object, but you can also define your own objects, such as a web page, a text box, a file, or a database record, etc.

Objects can have methods that can be executed. Database records can provide a 'save' method, image objects can have a 'rotate' method, email objects can provide a 'send' method, and so on.

Objects can also have properties that describe their characteristics. Database records can have FirstName and LastName properties.

The ASP.NET Date object has a Now property (written as Date.Now), and the Now property has a Day property (written as Date.Now.Day). The following example demonstrates how to access certain properties of the Date object:

Παράδειγμα

<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>

Εκτέλεση Παραδείγματος

If and Else Conditions

An important feature of dynamic web pages is to determine the actions to be executed based on conditions.

To achieve this, the commonly used method is to use if ... else statements:

Παράδειγμα

@{
var txt = "";
if(DateTime.Now.Hour > 12)
  {txt = "Καλησπέρα";}
else
  {txt = "Καλημέρα";}
}
<html>
<body>
<p>Το μήνυμα είναι @txt</p>
</body>
</html>

Εκτέλεση Παραδείγματος

Ανάγνωση Εισόδου Χρήστη

Μια άλλη σημαντική ιδιότητα των δυναμικών ιστοσελίδων είναι η ανάγνωση της εισόδου του χρήστη.

Αναγνωρίζεται η είσοδος από τη συνάρτηση Request[] και ελέγχεται η συνθήκη IsPost:

Παράδειγμα

@{
var totalMessage = "";
if(IsPost)
    {
    var num1 = Request["text1"];
    var num2 = Request["text2"];
    var total = num1.AsInt() + num2.AsInt();
    totalMessage = "Σύνολο = " + total;
    }
}
<html>
<body style="background-color: beige; font-family: Verdana, Arial;">
<form action="" method="post">
<p><label for="text1">Πρώτος Αριθμός:</label><br>
<input type="text" name="text1" /></p>
<p><label for="text2">Δεύτερο Αριθμός:</label><br>
<input type="text" name="text2" /></p>
<p><input type="submit" value="Προσθήκη" /></p>
</form>
<p>@totalMessage</p>
</body>
</html>

Εκτέλεση Παραδείγματος