ASP.NET Web Pages Using The Razor Syntax 
Chapter 2 – Introduction to ASP.NET Web Programming Using the Razor Syntax 
27 
Inside a code block, as an alternative to using Razor comment syntax, you can use the commenting 
syntax of the programming language you're using, such as C#: 
@{ 
// This is a comment. 
var myVar = 17; 
/* This is a multi-line comment 
that uses C# commenting syntax. */ 
In C#, single-line comments are preceded by the 
//
characters, and multi-line comments begin with 
/*
and end with 
*/
. (As with Razor comments, C# comments are not rendered to the browser.) 
For markup, as you probably know, you can create an HTML comment: 
<!-- This is a comment.  --> 
HTML comments start with 
<!--
characters and end with 
-->
. You can use HTML comments to surround 
not only text, but also any HTML markup that you may want to keep in the page but don't want to 
render. This HTML comment will hide the entire content of the tags and the text they contain: 
<!-- <p>This is my paragraph.</p>  --> 
Unlike Razor comments, HTML comments are rendered to the page and the user can see them by 
viewing the page source.  
Variables 
A variable is a named object that you use to store data. You can name variables anything, but the name 
must begin with an alphabetic character and it cannot contain whitespace or reserved characters.  
Variables and Data Types 
A variable can have a specific data type, which indicates what kind of data is stored in the variable. You 
can have string variables that store string values (like "Hello world"), integer variables that store whole-
number values (like 3 or 79), and date variables that store date values in a variety of formats (like 
4/12/2010 or March 2009). And there are many other data types you can use. 
However, you generally don't have to specify a type for a variable. Most of the time, ASP.NET can figure 
out the type based on how the data in the variable is being used. (Occasionally you must specify a type; 
you'll see examples in this book where this is true.) 
You declare a variable using the 
var
keyword (if you don't want to specify a type) or by using the name 
of the type: 
@{ 
// Assigning a string to a variable. 
Pdf create bookmarks - add, remove, update PDF bookmarks in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your C# Project with Rapid PDF Internal Navigation Via Bookmark and Outline
add bookmark pdf file; how to add bookmark in pdf
Pdf create bookmarks - VB.NET PDF bookmark library: add, remove, update PDF bookmarks in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your VB.NET Project with Rapid PDF Internal Navigation Via Bookmark and Outline
copy pdf bookmarks to another pdf; bookmark pdf acrobat
ASP.NET Web Pages Using The Razor Syntax 
Chapter 2 – Introduction to ASP.NET Web Programming Using the Razor Syntax 
28 
var greeting = "Welcome!"; 
// Assigning a number to a variable. 
var theCount = 3; 
// Assigning an expression to a variable. 
var monthlyTotal = theCount + 5; 
// Assigning a date value to a variable. 
var today = DateTime.Today; 
// Assigning the current page's URL to a variable. 
var myPath = this.Request.Url; 
// Declaring variables using explicit data types. 
string name = "Joe"; 
int count = 5; 
DateTime tomorrow = DateTime.Now.AddDays(1); 
The following example shows some typical uses of variables in a web page: 
@{ 
// Embedding the value of a variable into HTML markup. 
<p>@greeting, friends!</p> 
// Using variables as part of an inline expression. 
<p>The predicted annual total is: @( monthlyTotal * 12)</p> 
// Displaying the page URL with a variable. 
<p>The URL to this page is: @myPath</p> 
The result displayed in a browser: 
Converting and Testing Data Types 
Although ASP.NET can usually determine a data type automatically, sometimes it can't. Therefore, you 
might need to help ASP.NET out by performing an explicit conversion. Even if you don't have to convert 
types, sometimes it's helpful to test to see what type of data you might be working with. 
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Bookmarks. inputFilePath = Program.RootPath + "\\" 3.pdf"; String outputFilePath = Program.RootPath + "\\" 3_optimized.pdf"; 'create optimizing options
export excel to pdf with bookmarks; bookmark template pdf
VB.NET PDF File Split Library: Split, seperate PDF into multiple
how to split a PDF file into multiple ones by PDF bookmarks or outlines Valid value for each index: 1 to (Page Count - 1). ' Create output PDF file path
bookmark pdf in preview; auto bookmark pdf
ASP.NET Web Pages Using The Razor Syntax 
Chapter 2 – Introduction to ASP.NET Web Programming Using the Razor Syntax 
29 
The most common case is that you have to convert a string to another type, such as to an integer or 
date. The following example shows a typical case where you must convert a string to a number. 
@{ 
var total = 0; 
if(IsPost) { 
// Retrieve the numbers that the user entered. 
var num1 = Request["text1"]; 
var num2 = Request["text2"]; 
// Convert the entered strings into integers numbers and add. 
total = num1.AsInt() + num2.AsInt(); 
As a rule, user input comes to you as strings. Even if you've prompted users to enter a number, and even 
if they've entered a digit, when user input is submitted and you read it in code, the data is in string 
format. Therefore, you must convert the string to a number. In the example, if you try to perform 
arithmetic on the values without converting them, the following error results, because ASP.NET cannot 
add two strings: 
Cannot implicitly convert type 'string' to 'int'. 
To convert the values to integers, you call the 
AsInt
method. If the conversion is successful, you can 
then add the numbers.  
The following table lists some common conversion and test methods for variables. 
Method 
Description 
Example 
AsInt(), 
IsInt()
Converts a string that represents 
a whole number (like "593") to an 
integer. 
var myIntNumber = 0; 
var myStringNum = "539"; 
if(myStringNum.IsInt()==true){ 
myIntNumber = myStringNum.AsInt(); 
AsBool(), 
IsBool()
Converts a string like "true" or 
"false" to a Boolean type. 
var myStringBool = "True"; 
var myVar = myStringBool.AsBool(); 
AsFloat(), 
IsFloat()
Converts a string that has a 
decimal value like "1.3" or "7.439" 
to a floating-point number. 
var myStringFloat = "41.432895"; 
var myFloatNum = myStringFloat.AsFloat();  
AsDecimal(), 
IsDecimal()
Converts a string that has a 
decimal value like "1.3" or "7.439" 
to a decimal number. (In ASP.NET, 
a decimal number is more precise 
than a floating-point number.) 
var myStringDec = "10317.425"; 
var myDecNum = myStringDec.AsDecimal();  
AsDateTime(), 
Converts a string that represents var myDateString = "12/27/2010"; 
C# PDF File Compress Library: Compress reduce PDF size in C#.net
Bookmarks. inputFilePath = Program.RootPath + "\\" 3.pdf"; String outputFilePath = Program.RootPath + "\\" 3_optimized.pdf"; // create optimizing options
adding bookmarks to pdf document; create pdf bookmarks from word
C# PDF File Split Library: Split, seperate PDF into multiple files
Split PDF file by top level bookmarks. The following C# codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
convert word pdf bookmarks; bookmark page in pdf
ASP.NET Web Pages Using The Razor Syntax 
Chapter 2 – Introduction to ASP.NET Web Programming Using the Razor Syntax 
30 
IsDateTime()
a date and time value to the 
ASP.NET 
DateTime
type. 
var newDate = myDateString.AsDateTime(); 
ToString()
Converts any other data type to a 
string. 
int num1 = 17; 
int num2 = 76; 
// myString is set to 1776 
string myString = num1.ToString() + 
num2.ToString(); 
Operators 
An operator is a keyword or character that tells ASP.NET what kind of command to perform in an 
expression. The C# language (and the Razor syntax that's based on it) supports many operators, but you 
only need to recognize a few to get started. The following table summarizes the most common 
operators. 
Operator  Description 
Examples 
+
-
*
/
Math operators used in numerical expressions. 
@(5 + 13) 
@{ var netWorth = 150000; } 
@{ var newTotal = netWorth * 2; } 
@(newTotal / 2) 
=
Assignment. Assigns the value on the right side of 
a statement to the object on the left side. 
var age = 17; 
==
Equality. Returns 
true
if the values are equal. 
(Notice the distinction between the 
=
operator 
and the 
==
operator.) 
var myNum = 15; 
if (myNum == 15) { 
// Do something. 
}  
!=
Inequality. Returns 
true
if the values are not 
equal. 
var theNum = 13; 
if (theNum != 15) { 
// Do something. 
<= 
>=
Less-than,  
greater-than,  
less-than-or-equal, and  
greater-than-or-equal. 
if (2 < 3) { 
// Do something. 
var currentCount = 12; 
if(currentCount >= 12) { 
// Do something. 
+
Concatenation, which is used to join strings. 
ASP.NET knows the difference between this 
operator and the addition operator based on the 
data type of the expression. 
// The displayed result is "abcdef". 
@("abc" + "def") 
C# Create PDF Library SDK to convert PDF from other file formats
file. Create and save editable PDF with a blank page, bookmarks, links, signatures, etc. Create fillable PDF document with fields.
bookmark pdf reader; pdf bookmark
VB.NET Create PDF Library SDK to convert PDF from other file
Create and save editable PDF with a blank page, bookmarks, links, signatures, etc. Create fillable PDF document with fields in Visual Basic .NET application.
how to add bookmarks to pdf document; bookmark pdf documents
ASP.NET Web Pages Using The Razor Syntax 
Chapter 2 – Introduction to ASP.NET Web Programming Using the Razor Syntax 
31 
+= 
-=
The increment and decrement operators, which 
add and subtract 1 (respectively) from a variable. 
int theCount = 0; 
theCount += 1; // Adds 1 to count 
.
Dot. Used to distinguish objects and their 
properties and methods. 
var myUrl = Request.Url; 
var count = 
Request["Count"].AsInt(); 
()
Parentheses. Used to group expressions and to 
pass parameters to methods. 
@(3 + 7) 
@Request.MapPath(Request.FilePath); 
[]
Brackets. Used for accessing values in arrays or 
collections. 
var income = 
Request["AnnualIncome"]; 
!
Not. Reverses a 
true
value to 
false
and vice 
versa. Typically used as a shorthand way to test 
for 
false
(that is, for not 
true
). 
bool taskCompleted = false; 
// Processing. 
if(!taskCompleted) { 
// Continue processing 
&& 
||
Logical AND and OR, which are used to link 
conditions together. 
bool myTaskCompleted = false; 
int totalCount = 0; 
// Processing. 
if(!myTaskCompleted && totalCount < 
12) { 
// Continue processing. 
Working with File and Folder Paths in Code 
You'll often work with file and folder paths in your code. Here is an example of physical folder structure 
for a website as it might appear on your development computer: 
C:\WebSites\MyWebSite
default.cshtml
datafile.txt
\images
Logo.jpg
\styles
Styles.css
On a web server, a website also has a virtual folder structure that corresponds (maps) to the physical 
folders on your site. (One way to think of the virtual path is that it's the part of a URL that follows the 
domain.) By default, virtual folder names are the same as the physical folder names. The virtual root is 
represented as a slash (/), just like the root folder on the C: drive of your computer is represented by a 
backslash (\). (Virtual folder paths always use forward slashes.) Here are the physical and virtual paths 
for the file Styles.css file from the structure shown earlier: 
Physical path: C:\WebSites\MyWebSiteFolder\styles\Styles.css 
Virtual path (from the virtual root path /): /styles/Styles.css 
.NET PDF SDK - Description of All PDF Processing Control Feastures
Full page navigation, zooming & rotation; Outlines, bookmarks, & thumbnail display; Integrated annotation; More about Web Viewer ▶. Conversion. PDF Create.
how to create bookmark in pdf automatically; excel pdf bookmarks
XDoc.Word for .NET, Advanced .NET Word Processing Features
& rotation; Outlines, bookmarks, & thumbnail display; Integrated annotation; More about Web Viewer ▶. Conversion. Word Create. Create Word from PDF; Create Word
convert excel to pdf with bookmarks; pdf bookmark
ASP.NET Web Pages Using The Razor Syntax 
Chapter 2 – Introduction to ASP.NET Web Programming Using the Razor Syntax 
32 
When you work with files and folders in code, sometimes you need to reference the physical path and 
sometimes a virtual path, depending on what objects you're working with. ASP.NET gives you these 
tools for working with file and folder paths in code: the ~ operator, the 
Server.MapPath
method, and the 
Href
method. 
The ~ operator: Getting the virtual root 
In server code, to specify the virtual root path to folders or files, use the ~ operator. This is useful 
because you can move your website to a different folder or location without breaking the paths in your 
code.  
@{ 
var myImagesFolder = "~/images"; 
var myStyleSheet = "~/styles/StyleSheet.css"; 
The Server.MapPath method: Converting virtual to physical paths 
The 
Server.MapPath
method converts a virtual path (like /default.cshtml) to an absolute physical path 
(like C:\WebSites\MyWebSiteFolder\default.cshtml). You use this method for tasks that require a 
complete physical path, like reading or writing a text file on the web server. (You typically don't know 
the absolute physical path of your site on a hosting site's server.) You pass the virtual path to a file or 
folder to the method, and it returns the physical path: 
@{ 
var dataFilePath = "~/dataFile.txt"; 
<!-- Displays a physical path C:\Websites\MyWebSite\datafile.txt  --> 
<p>@Server.MapPath(dataFilePath)</p> 
The Href method: Creating paths to site resources 
The 
Href
method of the 
WebPage
object converts paths that you create in server code (which can include 
the ~ operator) to paths that the browser understands. (The browser can't understand the ~ operator, 
because that's strictly an ASP.NET operator.) You use the 
Href
method to create paths to resources like 
image files, other web pages, and CSS files. For example, you can use this method in HTML markup for 
attributes of 
<img>
elements, 
<link>
elements, and 
<a>
elements. 
@{ 
var myImagesFolder = "~/images"; 
var myStyleSheet = "~/styles/StyleSheet.css"; 
<!-- This code creates the path "../images/Logo.jpg" in the src attribute. --> 
<img src="@Href(myImagesFolder)/Logo.jpg" /> 
<!-- This produces the same result, using a path with ~  --> 
<img src="@Href("~/images")/Logo.jpg" /> 
ASP.NET Web Pages Using The Razor Syntax 
Chapter 2 – Introduction to ASP.NET Web Programming Using the Razor Syntax 
33 
<!-- This creates a link to the CSS file. --> 
<link rel="stylesheet" type="text/css" href="@Href(myStyleSheet)" /> 
Conditional Logic and Loops 
ASP.NET server code lets you perform tasks based on conditions and write code that repeats statements 
a specific number of times (that is, code that runs a loop). 
Testing Conditions 
To test a simple condition you use the 
if
statement, which returns true or false based on a test you 
specify: 
@{ 
var showToday = true; 
if(showToday) 
@DateTime.Today; 
The 
if
keyword starts a block. The actual test (condition) is in parentheses and returns true or false. The 
statements that run if the test is true are enclosed in braces. An 
if
statement can include an 
else
block 
that specifies statements to run if the condition is false: 
@{ 
var showToday = false; 
if(showToday) 
@DateTime.Today; 
else 
<text>Sorry!</text> 
You can add multiple conditions using an 
else if
block:  
@{ 
var theBalance = 4.99; 
if(theBalance == 0) 
<p>You have a zero balance.</p> 
else if (theBalance  > 0 && theBalance <= 5) 
<p>Your balance of $@theBalance is very low.</p> 
else 
<p>Your balance is: $@theBalance</p> 
ASP.NET Web Pages Using The Razor Syntax 
Chapter 2 – Introduction to ASP.NET Web Programming Using the Razor Syntax 
34 
In this example, if the first condition in the if block is not true, the 
else if
condition is checked. If that 
condition is met, the statements in the 
else if
block are executed. If none of the conditions are met, 
the statements in the 
else
block are executed. You can add any number of else if blocks, and then close 
with an 
else
block as the "everything else" condition. 
To test a large number of conditions, use a 
switch
block: 
@{ 
var weekday = "Wednesday"; 
var greeting = ""; 
switch(weekday) 
case "Monday": 
greeting = "Ok, it's a marvelous Monday"; 
break; 
case "Tuesday": 
greeting = "It's a tremendous Tuesday"; 
break; 
case "Wednesday": 
greeting = "Wild Wednesday is here!"; 
break; 
default: 
greeting = "It's some other day, oh well."; 
break; 
<p>Since it is @weekday, the message for today is: @greeting</p> 
The value to test is in parentheses (in the example, the weekday variable). Each individual test uses a 
case
statement that ends with a colon (:). If the value of a 
case
statement matches the test value, the 
code in that case block is executed. You close each case statement with a 
break
statement. (If you forget 
to include break in each 
case
block, the code from the next 
case
statement will run also.) A 
switch
block 
often has a 
default
statement as the last case for an "everything else" option that runs if none of the 
other cases are true. 
The result of the last two conditional blocks displayed in a browser: 
ASP.NET Web Pages Using The Razor Syntax 
Chapter 2 – Introduction to ASP.NET Web Programming Using the Razor Syntax 
35 
Looping Code 
You often need to run the same statements repeatedly. You do this by looping. For example, you often 
run the same statements for each item in a collection of data. If you know exactly how many times you 
want to loop, you can use a 
for
loop. This kind of loop is especially useful for counting up or counting 
down: 
@for(var i = 10; i < 21; i++) 
<p>Line #: @i</p> 
The loop begins with the 
for
keyword, followed by three statements in parentheses, each terminated 
with a semicolon. 
Inside the parentheses, the first statement (
var i=10;
) creates a counter and initializes it to 10. 
You don't have to name the counter 
i
— you can use any legal variable name. When the 
for
loop runs, the counter is automatically incremented. 
The second statement (
i < 21;
) sets the condition for how far you want to count. In this case, 
you want it to go to a maximum of 20 (that is, keep going while the counter is less than 21). 
The third statement (
i++
) uses an increment operator, which simply specifies that the counter 
should have 1 added to it each time the loop runs. 
Inside the braces is the code that will run for each iteration of the loop. The markup creates a new 
paragraph (
<p>
element) each time and adds a line to the output,  displaying the value of i (the counter). 
When you run this page, the example creates 11 lines displaying the output, with the text in each line 
indicating the item number.  
ASP.NET Web Pages Using The Razor Syntax 
Chapter 2 – Introduction to ASP.NET Web Programming Using the Razor Syntax 
36 
If you're working with a collection or array, you often use a 
foreach
loop. A collection is a group of 
similar objects, and the 
foreach
loop lets you carry out a task on each item in the collection. This type of 
loop is convenient for collections, because unlike a 
for
loop, you don't have to increment the counter or 
set a limit. Instead, the 
foreach
loop code simply proceeds through the collection until it's finished.  
This example returns the items in the 
Request.ServerVariables
collection that (which is an object that 
contains information about your web server). It uses a 
foreac
h loop to display the name of each item by 
creating a new 
<li>
element in an HTML bulleted list.  
<ul> 
@foreach (var myItem in Request.ServerVariables) 
<li>@myItem</li> 
</ul> 
The 
foreach
keyword is followed by parentheses where you declare a variable that represents a single 
item in the collection (in the example, 
var item
), followed by the 
in
keyword, followed by the collection 
you want to loop through. In the body of the 
foreach
loop, you can access the current item using the 
variable that you declared earlier. 
Documents you may be interested
Documents you may be interested