您的位置:首页 > 其它

Razor视图引擎-基础语法

2012-07-26 11:40 246 查看
所有以@开头或@{/*代码体*/}(在@与{直接不得添加任何空格)的部分代码都会被ASP.NET引擎进行处理.

在@{/*代码体*/}内的代码每一行都必须以";"结束,如

@{

vari=10;

vary=20;

}

而@xxx则不需要以";"作为结束符,如

@i输出10

@y;输出20;

代码区内字母分大小写.

字符类型常量必须用""括起例如:@{stringstr="mystring";}

-注意-

如需要在页面输出”@”字符

可以使用HTMLASCII编码@

当然Razor也提供智能分析功能:如果在@的前一个字符若是非空白字符,则ASP.NET不会对其进行处理

如:<p>text@ixx</p>输出text@ixx

单行语法:

@{varI=10;}

多行语法:

@{

varI=10;

Vary=20;

}


1.使用局部变量,Razor不支持访问修饰符(public,private等,这个没任何意义)

在单行上定义局部变量

@{vartotal=7;}

@{varmyMessage="HelloWorld";}

在多行上定义局部变量

@{

vargreeting="Welcometooursite!";

varweekDay=DateTime.Now.DayOfWeek;

vargreetingMessage=greeting+"Todayis:"+weekDay;

}


在上下文中使用变量

<p>Thevalueofyouraccountis:@total</p>

<p>ThevalueofmyMessageis:@myMessage</p>




注意:
变量拼接输出

@{vari=10;}

<p>text@itext</p>将输出text10text

但是如果你想要输出text10text呢?

<p>text@{@i}text</p>即可

<p>text@itext</p>将输出text@itext

<p>text@itext</p>将输出text@itext

<p>text@itext</p>将报错


如果是输出的是变量的方法名则不需要用@{}括住也可生效,但注意在@字符前记得加空格(感谢spook指出)如:

<p>text@i.ToString()text</p>

使用变量对象可直接写:@var1@var2@myObject.xx
2.使用逻辑处理

@{

if(xx)

{

//dosomething

}

else

{

//doanything

}

}


3.在@{...}内部使用html标记

@{

<p>text</P>

<div>div1</div>

}


4.在@{...}内部输出文本

利用@:进行单行输出:

@{

@:Thisissometext

@:Thisistexttoo

@:@i也可输出变量

}


利用<text/>进行多行输出:

@{

<text>

tomorrowisgood

somegirlisnice

</text>

}


5.在@{...}内部使用注释

@{

//单行注释

vari=10;

//defg

}


@*多行注释*@

@*

多行注释

多行注释

*@



@{

@*

多行注释

多行注释

*@

vari=10;@*asdfasf*@

}


<!--同时也可以使用C#默认的/*...*/-->


@{

/*

多行注释

*/

}


若在@{...}内部使用<!---->注释,则会输出到页面之中,如果在<!---->内部使用@变量,则会被处理

@{

<!--timenow:@DateTime.Now.ToString()-->

}

输出:<!--timenow:4/9/201112:01-->>
6.类型转换

AsInt(),IsInt()

AsBool(),IsBool()

AsFloat(),IsFloat()

AsDecimal(),IsDecimal()

AsDateTime(),IsDateTime()

ToString()

例子:

@{

vari=“10”;

}


<p>i=@i.AsInt()</p><!--输出i=10-->


7.使用循环

<!--方式1-->

@for(inti=10;i<11;i++)

{

@:@i

}

<!--方式2-->

@{

for(inti=10;i<11;i++)

{

//dosomething

}

}


<!--while同理-->


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: