初步接触.net MVC的视图语法,很多东西都不太熟悉,感觉跟之前的aspx以及html都有一些区别,最近看别人的代码,一边看一边研究,现把学到的东西在这里记录一下,以便日后翻阅。
第一部分:基础知识
1.视图,英文叫做razor,在.net MVC项目中,它是以.cshtml后缀名来结束的。
2.一个很直观的发现,就是这种文件里面有很多用@开头或者以@{代码体},这种形式的代码是razor特有的一种策略,所有这类代码都会被asp.net引擎进行处理。
3.在@{代码体}这种形式中的{}里面的各条语句之间需要用;进行分隔,而如果只是单单的一个@后接代码,则不需要用;分割。如
<span style="font-size:14px;">@{
ViewBag.Title = "用户注册";
Layout = "~/Views/Shared/_Layout.cshtml";
}</span>
和
<span style="font-size:14px;"> @Html.EditorFor(model => model.UserName)
@Html.ValidationMessageFor(model => model.UserName)
@Html.DisplayDescriptionFor(model => model.UserName)</span>
4.定义变量,可采用如下的方法定义变量。
<span style="font-size:14px;">@{
var greeting = "Welcome to our site!"; </span>
<span style="font-size:14px;"> var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Today is: " + weekDay; }</span>
有点类似于javascript,当然也可以在页面中使用这个变量,但是必须要有@这个符号。
<span style="font-size:14px;"><p>hello, @greeting</p></span>
需要注意的是,@前面需要有空格,asp.net才能够识别。
如@var i=10;
<p>text @i text</p>将输出text 10 text有空格,如果我们不想要这个空格怎么办呢,可以这样<p>text@{@i}text</p>,这样将输出text10text。此外
<span style="font-size:14px;"><p>text@i text</p> 将输出 text@i text </span>
<span style="font-size:14px;"><p>text@itext</p> 将输出 text@itext </span>
<span style="font-size:14px;"><p>text @itext</p> 将报错 </span>
如果是输出的是变量的方法名则不需要用@{}括住也可生效,但注意在@字符前记得加空格。如: <p>text @i.ToString()text</p> 使用变量对象可直接写: @var1 @var2 @myObject.xx
5.在@{}中还可以写逻辑代码如:
<span style="font-size:14px;">@{
if(){}
<span style="white-space:pre"> </span>else{}
}</span>
6.还可以在@{}中使用html的元素,如:
<span style="font-siz