多语言展示
当前在线:1276今日阅读:75今日分享:44

走入asp.net mvc不归路:[8]说说视图

作为最终呈现给用户的界面,asp.net mvc的视图还是比较灵活和强大的,即支持原生态的html,也支持后台语言,比较有特点的在于Razor引擎,可以使得一些功能更加方便。以下来就介绍一下视图。
工具/原料
1

win7 sp1

2

vs2012

3

asp.net mvc4

方法/步骤
1

视图一般是cshtml为后缀的文件,集中保存在根目录View文件夹下;每个控制器会对应一个视图文件夹,还有一些公用的文件夹如Shared文件夹,放在里面的视图文件,在其他地方不需要指定路径就可以访问得到

2

视图分为完整视图和分部视图,完整视图就是具有模板的页面,一般会有一个模板,最终生成的效果就相当于一个完整的html页面;分部视图就是模板为空的视图,一般用在其他视图中,作为其他页面的一部分,前缀一般会增加一个下划线,以示区分

3

一般来说,完整视图,可以指定一个模板,不指定的话,就使用默认模板(一般位于/Views/Shared/_Layout.cshtml的文件);其中图中标示代码可以不写,效果等同

4

分部视图的文件名称有前缀下划线,即默认为不指定模板;图示显示写明了不显示模板,代码去掉效果等同

5

不同是普通视图还是分部视图,都可以绑定一个Model,绑定之后,可以编写强类型代码或者绑定元素(如标签,文本框,下拉框等);图示列表绑定了集合类型,可以作循环,代码编写风格与C#一致,可以使用if,else,for,foreach等控制结构

6

还能将字段绑定到元素中;示例为修改域名记录的代码,第9行声明了一个form,第10行汇总错误提示信息,第12行使用了fieldset标记,第15行声明了一个hidden,并且绑定了id的值,也就是说当前修改的这条记录的编号会保存到这个hidden的value中;第18行声明了一个label,这个label的for属性值为Name,并且标签内的值为字段名,此处为英文'Name',这也是数据库使用的列名是英文使然,asp.net mvc还是允许我们自己添加别名,如'名称'的,现在暂时不作介绍;第21行,使用了EditorFor(),这个方法会自动选择一个元素,可能是txtbox,也可能是checkbox或者select,总之比较奇妙,会自动选择一个最佳的元素类型;第22行则绑定了一个显示错误的地方,当这个字段出现验证性错误时(如必填时未填,点击提交后),经验错误,提示会显示在这里

7

可以为视图指定一个标题,直接修改ViewBag.Title就可以了;如果你需要进行SEO,那么还可以改变模板,使之可以支持诸如ViewBag.Keyword或ViewBag.Description等操作

8

还可以引入命名空间,或者进行C#代码运算,甚至进行数据库运算,前提是使用@{}包起来

9

最后讲一个链接,其实两种写法是等效的

10

好了,视图就介绍到这里,祝您学习愉快!

推荐信息