Razor视图引擎布局 Razor视图引擎的基本概念与法语 SQL Server Mobile 和 .NET 数据访问接口之间的数据类型映射 binary 和 varbinary datetime 和 smalldatetime float 和 real
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的更多相关文章
- sql 视图 按where条件多个字段取一个 分类: SQL Server 2014-12-01 14:09 308人阅读 评论(0) 收藏
首先介绍一下 Case ..When...Then..End 的用法: CASEJiXiaoFind_RowID WHEN '1' THENJiXiao_Money1 WHEN '2' THEN ...
- SQL Server 2012 连接到数据库引擎
第 1 课:连接到数据库引擎 https://msdn.microsoft.com/zh-cn/library/ms345332(v=sql.110).aspx 本课将介绍主要的工具以及如何连接并 ...
- c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程
c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...
- 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 ...
- SQL Server 视图
视图实际上就是一个存储查询,重点是是可以混合和匹配来自基本表(或者其他视图)的数据,从而创建在很多方面像另一个基表那样起作用的对象.可以创建一个简单的查询,仅仅从一个表中选择几列,而忽略其他列:或者也 ...
- SQL SERVER分区视图
借助SQL SERVER分区视图,可以对SQL中的表进行集中管理,下文将以实例的方式为您详解SQL SERVER分区视图,希望对您学习SQL数据库能有所帮助. SQL SERVER分区视图给我们提供了 ...
- 使用SQL Server视图的优缺点
SQL Server视图我们经常会用的到,下面就为您介绍使用SQL Server视图的优缺点,希望可以对您SQL Server视图有更多的了解. 在程序设计的时候必须先了解视图的优缺点,这样可以扬长避 ...
- SQL Server物化视图学习笔记
一. 基本知识 摘抄自http://www.cnblogs.com/kissdodog/p/3385161.html SQL Server索引 - 索引(物化)视图 <第九篇> 索引视 ...
- 介绍“Razor”— ASP.NET的一个新视图引擎
我的团队当前正在从事的工作之一就是为ASP.NET添加一个新的视图引擎. 一直以来,ASP.NET MVC都支持 “视图引擎”的概念—采用不同语法的模板的可插拔模块.当前ASP.NET MVC “默认 ...
随机推荐
- 俯瞰spring
[简化Java开发] 基于POJO的轻量级和最小入侵性编程: 通过依赖注入和面向接口实现松耦合: 基于切面和惯例进行声明式编程: 通过切面和模板减少样板代码: [容纳你的bean] 容器是spring ...
- Linux下二进制文件安装MySQL
MySQL 下载地址:https://dev.mysql.com/downloads/mysql/ 并按如下方式选择来下载安装包. 1. 设置配置文件/etc/my.cnmore /etc/my.cn ...
- mac 打开apach 但无法访问localhost的解决方法
y由于mac系统默认自带了PHP和Apach, 所以可以通过 sudo apachectl start 直接启动apach服务, 此时在浏览器输入http://localhost,会出现It work ...
- 信息安全试验-DES加密!
信息安全试验二--DES加密算法 本渣表示没有理解原理,照着书上敲了一发,运行无误! 吐槽:手动S盒简直丧心病狂,扩展置换表全是手动输入,加密原理还是很好理解,两次异或,先混淆. 此代码数据由老师给出 ...
- 谈Elasticsearch下分布式存储的数据分布
对于一个分布式存储系统来说,数据是分散存储在多个节点上的.如何让数据均衡的分布在不同节点上,来保证其高可用性?所谓均衡,是指系统中每个节点的负载是均匀的,并且在发现有不均匀的情况或者有节点增加/删除 ...
- bzoj3743 [Coci2015]Kamp 常州模拟赛d6t2
3743: [Coci2015]Kamp Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 484 Solved: 229[Submit][Status ...
- 【noip】noip201503求和(题解可能不完美,但绝对详细)
3. 求和 难度级别:B: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 题目描述 一条狭长的纸带被均匀划分出了n个格子,格子编号从1到n.每个格子 ...
- LA 2218 半平面交
题目大意:n名选手参加铁人三项赛,比赛按照选手在三个赛段中所用的总时间排定名次.已知每名选手在三个项目中的速度Ui.Vi.Wi.问对于选手i,能否通过适当的安排三个赛段的长度(但每个赛段的长度都不能 ...
- 封装的一个Worker方法,利用线程处理运行时间较长的js代码
function webWorker(targetFile,content){ var promise=new Promise(function(resolve,reject){ var web=ne ...
- msp430项目编程33
msp430中项目---简易示波器系统 1.电路工作原理 2.代码(显示部分) 3.代码(功能实现) 4.项目总结