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 “默认 ...
随机推荐
- JavaScript正则表达式-重复次数(数量词)
*:表示对前面表达式的匹配出现零次或多次. var reg_pattern = /bo*/;//匹配b.bo.boooo +:表示对前面表达式的匹配连续出现一次或多次. var reg_pattern ...
- bs4--基本使用
CSS 选择器:BeautifulSoup4 和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据. lxml 只会 ...
- Developing
To work with the Android code, you will need to use both Git and Repo. In most situations, you can u ...
- 在html页面中使用js变量
Method 1: <a id="xxxx">xxxxxxxxxxxxxxxxxx</a> <script type="text/jav ...
- 九度oj 题目1352:和为S的两个数字
题目描述: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输入: 每个测试案例包括两行: 第一行包含一个整数n和k, ...
- rabbitmq php 学习
参考文档:http://www.cnblogs.com/phpinfo/p/4104551...http://blog.csdn.net/historyasamirror/ar... 依赖包安装 yu ...
- FZU 2020 :组合 【lucas】
Problem Description 给出组合数C(n,m), 表示从n个元素中选出m个元素的方案数.例如C(5,2) = 10, C(4,2) = 6.可是当n,m比较大的时候,C(n,m)很大! ...
- BZOJ 3749: [POI2015]Łasuchy【动态规划】
Description 圆桌上摆放着n份食物,围成一圈,第i份食物所含热量为c[i]. 相邻两份食物之间坐着一个人,共有n个人.每个人有两种选择,吃自己左边或者右边的食物.如果两个人选择了同一份食物, ...
- 【二叉搜索树】hdu 3791
http://acm.hdu.edu.cn/showproblem.php?pid=3791 [注意] 是看树的形态是否一样,而不是中序遍历的结果 [Accepted] #include<ios ...
- Spring Boot 集成spring security4
项目GitHub地址 : https://github.com/FrameReserve/TrainingBoot Spring Boot (三)集成spring security,标记地址: htt ...