1.简介
Razor并非编程语言,而是服务器端的标记语言。
Razor是什么?
是一种标记语法,可将基于服务器的代码C#嵌入至网页中
当某网页被请求时,服务器返回页面给浏览器之前先将执行页面中的服务器代码。通过服务端的运行,可执行进入数据库等复杂任务。
Razor是基于ASP.NET的,是为了创建web应用程序而设计的
语法:
使用了和PHP和ASP类似的语法
例如:
@foreach(int i = 0;i<10;i++){
<li>@i<li>
}
Razor帮助器
ASP.NET Razor帮助器通过几行简单代码即可访问组件
可使用Razor构建自己的帮助器,也可使用内建的ASP.NET帮助器
Razor帮助器说明:
Web Grig (Web网格)
Web Graphics(Web图形)
Google Analytics(Google 分析)
Facebook Integration(Facebook 集成)
Twitter Integration(Twitter 集成)
Sending Email(发送电子邮件)
Validation(验证)
Razor编程语言
支持C#和Visual Basic。C#用的较多
2.Razor C#语法
语法规则:
Razor代码块包含在 @{...} 中
内联表达式(变量和函数)使用@开头
代码语句使用分号结束
变量使用var关键字声明
字符串使用引号括起来
C#代码区分大小写
C#扩展名为.cshtml
实例:
@{var myMessage = "Hello World";}
@{
var greeting = "welcome";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting+"here is huston it is :"+weekDay;
}
<p>the greeting is : @greetingMessage</p>
如何工作?
将服务器代码嵌入到网页中的简单的编程语法
Razor语法基于ASP.NET框架,专门用于创建Web应用程序的部分Microsoft.NET框架
Razor支持所有ASP.NET 功能,但是使用的是简化后的语法
Razor网页包含两方面内容:HTML内容和Razor代码
服务器读取页面时,首先运行Razor代码,其次发送HTML页面至浏览器。服务器上执行的代码能够执行一些在浏览器上无法完成的任务,比如访问数据库服务器,服务器代码可创建动态的HTML内容,然后发送至服务器。从浏览器角度看,服务器代码生成的HTML和静态HTML没区别。
带Razor的ASP.NET 网页有特殊的文件扩展啊名cshtml(C#)和vbhtml(visual basic)
使用对象:
服务器代码通常涉及到一些对象,使用对象属性方法如下,
例如 @DateTime.Now.Day;@DateTime.Now.Hour;@DateTime.Now.Minute;@DateTime.Now.Second;
IF和ELSE条件
实例:
@{
var text = "";
if(DateTime.Now.Time>12){
text="A";
}else{
text="B";
}
}
读取用户输入
通过Request[]获取,传送输入数据通过IsPost判断
实例:
@{
if(IsPost){
var num1 = Request["text1"];
var num2 = Request["text2"];
var total = num1.AsInt()+num2.AsInt();
}
}
3.C#变量
变量是用于存储数据的命名实体
变量
以字母开头,开头不能是空格和保留字符(关键字)
使用var关键字或者类型声明,ASP.NET 通常会自动确定数据类型
例如
var s = "字符串";
var i1 = 1;
var today = DateTime.Today;
string s2 = "字符串";
int i1 = 1;
DateTime today = DateTime.Today;
数据类型
int 整数、float浮点数、decimal 十进制高精度数字、bool 布尔值、string
运算符
= 为变量复制
+、-、*、/ 加减乘除
+=,-= 递增、递减
== 、 != 相等、不相等
>、<、>=、<=
+ 连接字符串
. 分隔对象和方法
()将值进行分组、传递参数
[]访问数组或集合的值
! 真假取反
&&、|| 逻辑与、逻辑或
转换数据类型
最常见为字符串转数字、日期
IsInt() 判断字符串是否是整数型字符串
AsInt() 字符串转整数
IsFloat() 判断字符串是否是浮点型数字字符串
AsFloat() 字符串转浮点数
IsDecimal() 判断字符串是否是十进制高精度数组
AsDecimal() 字符串转十进制高精度数字
IsDateTime() 判断字符串是否是DateTime类型
AsDateTime() 将字符串转换为ASP.NET DateTime类型
IsBool() 判断字符串是否是bool类型字符串
AsBool() 将字符串转换为bool类型
ToString() 将任意类型数组转换为字符串
4.C#循环和数组
for循环 重复执行同样的语句,知道循环次数即可使用此循环
例如:@for(int i=0;i<10;i++){<p>Ling @i</p>}
for each循环 常用于遍历数组或集合
例如:遍历ASP.NET Request.ServerVariables 集合
@foreach(var x in Request.ServerVariables){<li>@x</li>}
while循环:通用循环
例如:@
{int i = 0;
while(i<5){
i+=1;
<p>Line @i</p>
}
}
数组:存储多个相似变量
例如:
@{
string[] members = {"a","b","c"};
}
@foreach(var x in members){
<p>@x</p>
}
5.C#逻辑
if条件
@{var num = 10;}
@if(num >90){
<p>the price is to high.</p>
}
else条件
@{var num = 10;}
@if(num >90){
<p>the price is to high.</p>
}else{
<p>the price is to ok.</p>
}
else if条件
@{var num = 10;}
@if(num >90){
<p>the price is to high.</p>
}else if(pice >20 && prive <50){
<p>the price is to ok.</p>
}else{
<p>the price is low.</p>
}
switch条件
@{
var weekday = DateTime.Now.DayOfWeek;
var day = weekday.toString();
var message = "";
}
@switch(day)
{
case "Monday":message = "this day is Monday";break;
case "Thursday":message = "this day is Thursday";break;
case "Friday":message = "this day is Friday";break;
default:message = "Today is:"+day;break;
}
<p>@message</p>
参考资料:https://www.runoob.com/aspnet/aspnet-intro.html
12-12
366
08-13
621