码迷,mamicode.com
首页 > Web开发 > 详细

理解ASP.NET MVC中的Razor视图引擎

时间:2015-06-17 22:58:16      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:

什么是 Razor ?

Razor 是一种允许向网页中嵌入基于服务器的代码(C#)的标记语法,是微软针对ASP.NET MVC推出的模板引擎。

C# 的主要 Razor 语法规则

  • Razor 代码封装于 @{ ... } 中
  • 行内表达式(变量和函数)以 @ 开头
  • 代码语句以分号结尾
  • 字符串由引号包围
  • C# 代码对大小写敏感
  • C# 文件的扩展名是 .cshtml
<!-- 单行代码块 -->
@{ var myMessage =    "Hello World"; }

<!-- 行内表达式或变量 -->
<p>The value of myMessage is: @myMessage</p> 

<!-- 多行语句代码块 -->
@{
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>

 

与对象打交道

服务器代码常常涉及对象。

"Date" 对象是典型的 ASP.NET 内建对象,但是也可以自行定义对象,一张网页,一个文本框,一个文件,或者一条数据库记录,等等。

对象可以拥有能够执行的方法。数据库记录可以提供“保存”方法,图像对象可以有“旋转”方法,电子邮件对象可以提供“发送”方法,以此类推。

对象也可以有描述其特点的属性。数据库记录可以有 FirstName 和 LastName 属性。

ASP.NET Date 对象拥有 Now 属性(写为 Date.Now),Now 属性有 Day 属性(写为 Date.Now.Day)。下面的例子展示如何访问 Date 对象的某些属性:

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

读取用户输入

动态网页的另一个重要特性是读取用户的输入。

由 Request[] 函数读取输入,并由 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>

转换数据类型

将一种数据类型转换为另一种有时很有用。

大多数常见的例子是将字符串输入转换为另一种类型,比如整数或日期。

作为一项规则,用户输入会成为字符串,即使用户输入的是数字。所以,数字输入值在用于计算之前必须被转换为数字。

下面是常用的转换方法列表:

方法描述实例
  • AsInt()
  • IsInt()
把字符串转换为整数。 if (myString.IsInt()) {myInt=myString.AsInt();}
  • AsFloat()
  • IsFloat()
把字符串转换为浮点数。 if (myString.IsFloat()) {myFloat=myString.AsFloat();}
  • AsDecimal()
  • IsDecimal()
把字符串转换为十进制数。 if (myString.IsDecimal()) {myDec=myString.AsDecimal();}
  • AsDateTime()
  • IsDateTime()
把字符串转换为 ASP.NET DateTime 类型 myString="10/10/2012"; myDate=myString.AsDateTime();
  • AsBool()
  • IsBool()
把字符串转换为逻辑值。 myString="True"; myBool=myString.AsBool();
ToString() 把任意数据类型转换为字符串。 myInt=1234; myString=myInt.ToString();

理解ASP.NET MVC中的Razor视图引擎

标签:

原文地址:http://www.cnblogs.com/johnvwan/p/4584445.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!