Razor视图引擎布局

 
  • 不需要像过去aspx一样,使用.Master文件,而是统一使用.cshtml 或 .vbhtml文件。但文件名一般以 _开头,这样做文件不会当做View显示出来
  • 使用@RenderBody() 表示替换主体部分
  • 使用@RenderSection()可以自定义替换部分,

先布局页使用@RenderSection("Head", false) 定义一个要替换的区域,第一个参数表示替换区域名称,第二个参数为可选参数,false表示可以不必一定在页面中替换,true表不必须被替换

然后在内容页中使用

@section Head{
输出给头部的内容
}

引用布局页

方式一

  在内容页中直接使用Layout属性赋值布局布文件路径。

  

@{
Layout = Url.Content("~/Views/Shared/_Home.cshtml");
}

这种方式对以后的修改是比较麻烦的,不推荐使用

方式二

  在内容页的文件夹或父级文件夹添加_ViewStart.cshtml文件,然后在_ViewStart.cshtml文件中引用布局页(这很与aspx开发的web.config文件类似)

  当不同的文件夹内的如果要使用不同的布局时,可以在相应的文件夹下新建_ViewStart.cshtml文件

  当相同文件夹内的文件要使用不同布局时,只能在内容页里使用Layout属性了

使用布局页时,当此用js文件时,必须使用<script  src="" type="text/javascript"></script>结尾,而不能使用<script  src="" type="text/javascript" />

Razor视图引擎的基本概念与法语

 

Razor 视图引擎的特点:

  • 简洁、富于表现、流畅

    尽量减少页面代码的输入,实现快速流畅的编程工作

    不必明确为服务器代码标记起始与结束符,Razor 能智能判断,这样让页面看清洁,代码方便阅读

    aspx代码

    

1
2
3
4
5
6
7
8
9
<ul>
         <% foreach(var str in list ){
            %>
            <li>
            <%=str %>
            </li>
            <%
            } %>
      </ul>

   Razor代码

<ul>
@foreach (var str in list) {
<li>@str</li>
}
</ul>
  • 易于学习

       对于有过WEB开发经验的人来说, 能快速学会,就几个需要注意的点

  • 支持单元测试         

Razor的基本语法

  伟大的@标记

  @标记是Razor的根本,服务器端代码段都以@开始

  代码块

  

@{
    var i = 100;
    var str = "Holle world!";
    }

  HTML编码

  @输入都是经过编码的,如果不需要编码,需要使用@Html.Raw(str)

 代码与纯文本混合

  方式一、用<text>输出的文本内容</text>

@for (int i = 0; i < 10; i++)
{
<text>Holle world</text> 
}

  方式二、使用 @: 输出

@for (int i = 0; i < 10; i++)
{
 @:Holle world
}

表达式与文本混合

Holle @FirstName . @LastName .

EMAIL地址

  151279853@qq.com

  Razor可以自动认别Email地址,而不会做服务器代码执行

输出@符号

  当页面需要输出@符号时,连续两次@@ 这样输出,与C#的转义字符类似。

显示输出

  当@与前面的文本之间无空间时,需要使用()号输入,如 <text> Hello@(UserName) </text>(<text>标记其实是为了让Razor把<text>当HTML标签处理,但不输出)

服务器断注释

  @*

    This is server side

    This is server side

  *@

 Razor创建委托

  Razor创建委托是为以复用视图逻辑

1
2
3
4
5
@{
    Func<dynamic, object> b = @<strong>@item</strong>;
    }
 
@b("这样会给字体加粗!")

  内容中混合代码

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<ul>
 @foreach (var str in list)
 {
     <li>
    @if (isTrue)
    {
      @: isTrue 为 @isTrue  
    }
    else
    {
      @:(isTrue 为 @isTrue)
    }
     </li>
 }
</ul>

  多行内容混合代码

当多行内容在HTML闭合的标签中时,可以直接使用@

1
2
3
4
5
6
7
8
@if (isTrue)
{
    <p>
    现在时间<br />
    现在时间是:@DateTime.Now<br />
    现在时间<br />
    </p>
}

    当多行内容不在HTML闭合标签中时,需要使用行输出标记@: 或 <text></text>标记

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@if (isTrue)
{
     
    @:现在时间<br />
    @:现在时间是:@DateTime.Now<br />
    @:现在时间<br />
      
}
 
 
@if (isTrue)
{
    <text>
    现在时间<br />
    现在时间是:@DateTime.Now<br />
    现在时间<br />
    </text>
}

  

SQL Server Mobile 和 .NET 数据访问接口之间的数据类型映射

 
 
.NET 数据类型 SQL Server Mobile 数据类型

binary

varbinary

boolean

bit

byte

tinyint

byte[]

varbinary

datetime

datetime

decimal

numeric

double

float

guid

uniqueidentifier

image

image

int16

smallint

Uint16

uint16

int32

int

Uint32

uint32

int64

bigint

Uint64

uint64

SqlBinary

varbinary

SqlBoolean

bit

SqlByte

tinyint

SqlDecimal

numeric

SqlDateTime

datetime

SqlDouble

float

SqlGuid

uniqueidentifier

SqlInt16

smallint

SqlInt32

int

SqlInt64

bigint

SqlMoney

money

SqlSingle

real

SqlString

nvarchar

single

real

string

nvarchar

SQL Server Mobile 支持的 SqlDecimal 数据类型只能达到 96 位。如果超过 96 位,SQL Server Mobile 将引发溢出异常错误。

binary 和 varbinary

 

固定长度或可变长度的 Binary 数据类型。

binary [ ( n ) ]

长度为 n 字节的固定长度二进制数据,其中 n 是从 1 到 8,000 的值。存储大小为 n 字节。

varbinary [ ( n | max ) ]

可变长度二进制数据。n 可以取从 1 到 8,000 的值。max 指示最大的存储大小为 2^31-1 字节。存储大小为所输入数据的实际长度 + 2 个字节。所输入数据的长度可以是 0 字节。varbinary 的 SQL-2003 同义词为 binary varying。

备注

如果未在数据定义或变量声明语句中指定 n,则默认长度为 1。如果未使用 CAST 函数指定 n,则默认长度为 30。

如果列数据项的大小一致,则使用 binary。

如果列数据项的大小差异相当大,则使用 varbinary。

当列数据条目超出 8,000 字节时,请使用 varbinary(max)。

datetime 和 smalldatetime

 

用于表示某天的日期和时间的数据类型。

datetime 和 smalldatetime

表示某天的日期和时间。

数据类型 范围 精确度

datetime

1753 年 1 月 1 日到 9999 年 12 月 31 日

3.33 毫秒

smalldatetime

1900 年 1 月 1 日到 2079 年 6 月 6 日

1 分钟

备注

Microsoft SQL Server 2005 Database Engine 用两个 4 字节的整数内部存储 datetime 数据类型的值。 第一个 4 字节存储“基础日期”(即 1900 年 1 月 1 日)之前或之后的天数。基础日期是系统参照日期。另外一个 4 字节存储天的时间(以午夜后经过的毫秒数表示)。

smalldatetime 数据类型存储天的日期和时间,但精确度低于 datetime。数据库引擎 将 smalldatetime 值存储为两个 2 字节的整数。第一个 2 字节存储 1900 年 1 月 1 日后的天数。另外一个 2 字节存储午夜后经过的分钟数。

如下表所示,将 datetime 值舍入到 .000、.003、或 .007 秒的增量。

示例 舍入后的示例

01/01/98 23:59:59.999

1998-01-02 00:00:00.000

01/01/98 23:59:59.995,

01/01/98 23:59:59.996,

01/01/98 23:59:59.997 或

01/01/98 23:59:59.998

1998-01-01 23:59:59.997

01/01/98 23:59:59.992,

01/01/98 23:59:59.993 或

01/01/98 23:59:59.994

1998-01-01 23:59:59.993

01/01/98 23:59:59.990 或

01/01/98 23:59:59.991

1998-01-01 23:59:59.990

将等于或小于 29.998 秒的 smalldatetime 值向下舍入到最接近的分钟数;将等于或大于 29.999 秒的值向上舍入到最接近的分钟数。

  复制代码
--Returns time as 12:35.
SELECT CAST('2003-05-08 12:35:29.998' AS smalldatetime);
GO
--Returns time as 12:36.
SELECT CAST('2003-05-08 12:35:29.999' AS smalldatetime);
GO

float 和 real

 
 

用于表示浮点数值数据的大致数值数据类型。浮点数据为近似值;因此,并非数据类型范围内的所有值都能精确地表示。

注意:
real 的 SQL-92 同义词为 float(24)。

数据类型 范围 存储

float

-1.79E + 308 至 -2.23E - 308、0 以及 2.23E - 308 至 1.79E + 308

取决于 n 的值

real

-3.40E + 38 至 -1.18E - 38、0 以及 1.18E - 38 至 3.40E + 38

4 字节

语法

float [ ( n ) ]

其中 n 为用于存储 float 数值尾数的位数,以科学记数法表示,因此可以确定精度和存储大小。如果指定了 n,则它必须是介于 1 和 53 之间的某个值。n 的默认值为 53。

n value 精度 存储大小

1-24

7 位数

4 字节

25-53

15 位数

8 字节

注意:
SQL Server 2005 将 n 视为下列两个可能值之一。如果 1<=n<=24,则将 n 视为 24。如果 25<=n<=53,则将 n 视为 53。

SQL Server float[(n)] 数据类型从 1 到 53 之间的所有 n 值均符合 SQL-92 标准。double precision 的同义词为 float(53)。

Razor视图引擎布局 Razor视图引擎的基本概念与法语 SQL Server Mobile 和 .NET 数据访问接口之间的数据类型映射 binary 和 varbinary datetime 和 smalldatetime float 和 real的更多相关文章

  1. sql 视图 按where条件多个字段取一个 分类: SQL Server 2014-12-01 14:09 308人阅读 评论(0) 收藏

    首先介绍一下 Case ..When...Then..End  的用法: CASEJiXiaoFind_RowID  WHEN '1' THENJiXiao_Money1  WHEN '2' THEN ...

  2. SQL Server 2012 连接到数据库引擎

    第 1 课:连接到数据库引擎 https://msdn.microsoft.com/zh-cn/library/ms345332(v=sql.110).aspx   本课将介绍主要的工具以及如何连接并 ...

  3. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  4. Display a Detail View with a List View 主子视图-列表视图与详细信息视图同时显示

    In this lesson, you will learn how to display a Detail View together with a List View. For this purp ...

  5. SQL Server 视图

    视图实际上就是一个存储查询,重点是是可以混合和匹配来自基本表(或者其他视图)的数据,从而创建在很多方面像另一个基表那样起作用的对象.可以创建一个简单的查询,仅仅从一个表中选择几列,而忽略其他列:或者也 ...

  6. SQL SERVER分区视图

    借助SQL SERVER分区视图,可以对SQL中的表进行集中管理,下文将以实例的方式为您详解SQL SERVER分区视图,希望对您学习SQL数据库能有所帮助. SQL SERVER分区视图给我们提供了 ...

  7. 使用SQL Server视图的优缺点

    SQL Server视图我们经常会用的到,下面就为您介绍使用SQL Server视图的优缺点,希望可以对您SQL Server视图有更多的了解. 在程序设计的时候必须先了解视图的优缺点,这样可以扬长避 ...

  8. SQL Server物化视图学习笔记

    一. 基本知识   摘抄自http://www.cnblogs.com/kissdodog/p/3385161.html SQL Server索引 - 索引(物化)视图 <第九篇> 索引视 ...

  9. 介绍“Razor”— ASP.NET的一个新视图引擎

    我的团队当前正在从事的工作之一就是为ASP.NET添加一个新的视图引擎. 一直以来,ASP.NET MVC都支持 “视图引擎”的概念—采用不同语法的模板的可插拔模块.当前ASP.NET MVC “默认 ...

随机推荐

  1. JavaScript正则表达式-重复次数(数量词)

    *:表示对前面表达式的匹配出现零次或多次. var reg_pattern = /bo*/;//匹配b.bo.boooo +:表示对前面表达式的匹配连续出现一次或多次. var reg_pattern ...

  2. bs4--基本使用

    CSS 选择器:BeautifulSoup4 和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据. lxml 只会 ...

  3. Developing

    To work with the Android code, you will need to use both Git and Repo. In most situations, you can u ...

  4. 在html页面中使用js变量

    Method 1:   <a id="xxxx">xxxxxxxxxxxxxxxxxx</a> <script type="text/jav ...

  5. 九度oj 题目1352:和为S的两个数字

    题目描述: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输入: 每个测试案例包括两行: 第一行包含一个整数n和k, ...

  6. rabbitmq php 学习

    参考文档:http://www.cnblogs.com/phpinfo/p/4104551...http://blog.csdn.net/historyasamirror/ar... 依赖包安装 yu ...

  7. FZU 2020 :组合 【lucas】

    Problem Description 给出组合数C(n,m), 表示从n个元素中选出m个元素的方案数.例如C(5,2) = 10, C(4,2) = 6.可是当n,m比较大的时候,C(n,m)很大! ...

  8. BZOJ 3749: [POI2015]Łasuchy【动态规划】

    Description 圆桌上摆放着n份食物,围成一圈,第i份食物所含热量为c[i]. 相邻两份食物之间坐着一个人,共有n个人.每个人有两种选择,吃自己左边或者右边的食物.如果两个人选择了同一份食物, ...

  9. 【二叉搜索树】hdu 3791

    http://acm.hdu.edu.cn/showproblem.php?pid=3791 [注意] 是看树的形态是否一样,而不是中序遍历的结果 [Accepted] #include<ios ...

  10. Spring Boot 集成spring security4

    项目GitHub地址 : https://github.com/FrameReserve/TrainingBoot Spring Boot (三)集成spring security,标记地址: htt ...