这篇文章主要介绍ASP.NET MVC之Razor语法的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
创新互联网站建设提供从项目策划、软件开发,软件安全维护、网站优化(SEO)、网站分析、效果评估等整套的建站服务,主营业务为成都网站设计、网站建设,成都app软件开发公司以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。创新互联深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!1. 表达式
表达式必须跟在“@”符号之后,
2.代码块
代码块必须位于“@{}”中,并且每行代码必须以“;”结尾。代码块中定义的变量可能会被同一个域中的其他块使用。比如,定义在视图顶部的变量可以被同一视图中的代码块和代码段访问。
3. 布局
Razor通过layouts保持网页外观布局的一致性。布局模板包含基本的标签,并可以指定渲染视图内容的位置。比如
基本布局文件(_Layout.cshtml)
@View.Title @RenderSection(“Header”);@RenderBody()@RenderSection(“Footer”);
布局页面定义完成后,其他视图页面就可以引用该布局文件,比如
@{Layout=”~/_Layout.cshtml”;} @section Header {Page Header Content
} @section Footer { Copyright @DateTime.Now.Year }Page Main Content
使用Razor布局和内容视图将页面组合在一起,展示了一个完整的页面,其中的每一块定义了页面的不同部分。
4.部分视图
使用布局通过重用部分HTML代码做到网站外观的一致性,但是有一些情况,布局则无法实现,比如,网页上的一部分信息需要多次重复出现(格式一致,显示内容不一致),例如,购物网站页面上的交易列表,只显示交易名称、当前价格和摘要信息。
ASP.NET MVC通过部分视图的技术实现了这个需求。
首先,先定义部分视图,并保存为单独的视图文件(例如,~/Views/Shared/Acution.cshtml)。
@model Auction
然后,在需要使用该部分视图的位置,调用ASP.NET MVC自带的HTML方法调用它,比如:
@model IEnumerableSearch Result
@foreach(var auction in Model){ @Html.Partial(“Auction”,auction); }
其中,Html.Partial()方法的第一个参数“Auction”是部分视图名称,并需要包含扩展名。第二个参数则是传递到部分视图的数据模型。第二个参数不是必须的,如果不传递,系统会默认将调用该部分视图的数据模型进行传递,比如,本例中的IEnumerable
由此可见,使用部分视图能够降低网页中的代码重复和编码复杂性,增强可读性。
5. 显示数据
MVC架构分为三层,模型、视图和控制器。三层之间彼此分离且协同工作,其中,就需要控制器担当“协调”的角色,视图将请求交给控制器,控制器对模型进行操作,并将操作结果反馈给视图,视图对模型的数据进行呈现。
控制器和视图之间的数据传递方式,ASP.NET MVC 提供了以下几种实现方式:
1) ViewData
ViewData实现方式,它的实现类似于Dictionary的操作,使得数据传递变得非常简单。
在控制器方法中使用类似于ViewData[“DataKey”]=dataValue
进行赋值,在视图文件中,使用var dataValue=ViewData[“DataKey”]
获取数据。
2) ViewBag
ViewBag的使用类型与C#中的dynamic类型,可以直接操作其属性,比如,
控制器方法:ViewBag.DataProperty=dataValue;
视图文件:var dataValue=ViewBag.DataProperty;
3) Model属性
Model属性属于强类型,并且是动态类型,可以在视图上输入”@Model”就可以直接访问。
6. HTMLHelper和URLHelper
Web请求的目标就是向用户发送HTML代码,在Razor语法中,ASP.NET MVC有两个重要的帮助类来生成对应的HTML代码,分别是HTMLHelper和URLHelper。HTMLHelper类用来生成HTML标记代码,URLHelper用来生成URL地址链接。
@Html.ActionLink(“Home”,”Index”,”Home”)
渲染得到的HMTL代码为:
HomePage
以上是“ASP.NET MVC之Razor语法的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!