MVC 使用cshtml的一些基础知识-和相关整理
首先在认识cshtml之前,先要了解一下Razor视图引擎
如果对此有疑问的话可以借鉴
博客园博文:http://kb.cnblogs.com/page/96883/ 或
博客博文:http://www.cnblogs.com/dengxinglin/p/3352078.html
上面都讲解了Razor 以及cshtml的使用语法
这里呢,我们只是整理一下大家熟悉的asp.net和cshtml之间容易出现错误的书写方法
从aspx转到chshtml还是有很多要适应的地方的,本帖是个人学习笔记帖不断更新。每天开着本帖编程。
按第一个有意义的编译错误的首字母排序,便于查找:
Cannot implicitly convert type 'void' to 'object'
错误:@Html.RenderPartial("_XXXX", Model);
正确:@{Html.RenderPartial("_XXXX", Model);}
其他:这个写法深刻表明了“<% xxx;%>”这样的代码变成了@{xxx;}。
不过感觉这个写法很丑,是否有更好的?
'object': type used in a using statement must be implicitly convertible to 'System.IDisposable'
错误:@using "...";
正确:@using ... ;(把引号去掉)
说明:可以这样理解,这里的东西除了多了个@之外,都和cs文件中的语法一样了。
The name 'i' does not exist in the current context
错误:
@{
<table>
for (int i = 0; i <= 15; i++)
{
<tr>
//这里用到了i
</tr>
}
</table>
}
正确:
<table>
@for (int i = 0; i <= 15; i++)
{
<tr>
//这里用到了i
</tr>
}
</table>
任何<>都将从C#语法变到html语法,而@{}则相反。
-----------------------------------------------------------------------------------------------
不好:(也能运行)
<td>
@foreach (var user in Roles.GetUsersInRole((string)ViewBag.OldRole))
{
<text>@user<br /></text>
}
</td>
好:
<td>
@foreach (var user in Roles.GetUsersInRole((string)ViewBag.OldRole))
{
@user<br />
}
</td>
说明:@除了能把语境从html变成cs,也能做相反的变化。这样代码的简洁性就好多了。
说明:本以为Razor想把“Html中镶嵌C#”变成"C#中镶嵌Html"(类似Helper),看来也不尽然。后者的好处是可以被测试,而前者不行。在推出Razor的时候官网曾经提到要让Razor可测试,不知道如何实现,拭目以待。
MVC 使用cshtml的一些基础知识-和相关整理的更多相关文章
- 第一天上午——HTML网页基础知识以及相关内容
今天上午学习了HTML基础知识以及相关内容,还有DW的基本使用方法. HTML(HyperText Markup Language):超文本标记语言,超文本:网页中除了包含文本文字之外,还包含了图片, ...
- 背水一战 Windows 10 (76) - 控件(控件基类): Control - 基础知识, 焦点相关, 运行时获取 ControlTemplate 和 DataTemplate 中的元素
[源码下载] 背水一战 Windows 10 (76) - 控件(控件基类): Control - 基础知识, 焦点相关, 运行时获取 ControlTemplate 和 DataTemplate 中 ...
- mysql基础知识语法汇总整理(二)
mysql基础知识语法汇总整理(一) insert /*insert*/ insert into 表名(字段列表) values(值列表); --蠕虫复制 (优点:快速复制数据,测试服务器压力) in ...
- mysql基础知识语法汇总整理(一)
mysql基础知识语法汇总整理(二) 连接数据库操作 /*连接mysql*/ mysql -h 地址 -P 端口 -u 用户名 -p 密码 例如: mysql -u root -p **** /* ...
- linux内存基础知识和相关调优方案
内存是计算机中重要的部件之中的一个.它是与CPU进行沟通的桥梁. 计算机中全部程序的执行都是在内存中进行的.因此内存的性能对计算机的影响很大.内存作用是用于临时存放CPU中的运算数据,以及与硬盘等外部 ...
- C#基础知识面试经典[整理]
个人网站:http://www.51pansou.com .net视频下载:.net视频教程 .net源码下载:.net源码 当初学 C# 时是找个人大概问了一下数据类型和分支语句就开始做项目了.这两 ...
- python基础知识1---python相关介绍
阅读目录 一 编程与编程语言 二 编程语言分类 三 主流编程语言介绍 四 python介绍 五 安装python解释器 六 第一个python程序 七 变量 八 用户与程序交互 九 基本数据类型 十 ...
- HTML5基础知识及相关笔记
HTML5基础 1.1HTML文件的基本结构和W3C标准 1.1.1HTML简介 HTML是一种描述网页的语言,一种超文本标记的语言! 1.1.2HTML文件的基本结构 头部(head) 头部是网页的 ...
- MT【90】图论基础知识及相关例题
此讲适合参加全国联赛二试的同学 介绍图论和我们学习的一般的知识点比如函数一样,首先要介绍一些定义,只是图论里的定义相对较多,这里给出部分在竞赛中常用到的: 就像学函数的时候,学了定义和相关概念后我们要 ...
随机推荐
- 命令行选项 - Mozilla 产品与私有技术 | MDN - Google Chrome
命令行选项 在本文章中 语法规则 使用命令行选项 示例 用户配置档 -CreateProfile profile_name -CreateProfile "profile_name prof ...
- web service && WCF 学习小结
Web Service和WCF技术都提供了应用程序与应用程序之间的通信.它们都是基于soap消息在客户端和服务端之间进行通信,由于soap消息是一种xml格式,因此传输的数据格式为XML.每次客户端向 ...
- Postgre SQL连接服务器失败
首先这是登陆postgre sql时提示的错误信息: psql: 无法联接到服务器: Connection refused (0x0000274D/10061) 服务器是否在主机 &qu ...
- js计算两个日期的天数差值
js计算两个日期的天数差值 通过两个日期计算这两个日期之间的天数差值 /** * 计算天数差的函数,通用 * @param sDate1 * @param sDate2 * @returns {Num ...
- 华硕200系主板完美兼容M.2安装Win7系统
虽然Windows 10系统的装机率正不断攀升,但经典的Windows 7依然有着大量的用户群体.特别是在我们中国, Windows 7依然是许许多多电脑用户的装机首选系统. 经久不衰的Windows ...
- table表格(笔记)
<table class="table table-hover2 pick_carTable"> <thead> <tr class="bl ...
- 【PAT】B1075 链表元素分类(25 分)
这道题算有点难,心目中理想的难度. 不能前怕狼后怕虎,一会担心超时,一会又担心内存过大,直接撸 将三部分分别保存到vector 有意思的在于输出 分别输出第一个的add和num 中间输出nextadd ...
- SAP CRM 开发学习资料和教程整理【不定时更新】
本文链接:http://www.cnblogs.com/hhelibeb/p/6276929.html 首先是SAP网站上面的相关内容 SAP Customer Relationship Manage ...
- JdbcTemplate介绍<二>
引言 如果说JdbcTemplate类是Spring Jdbc的核心类,那么execute方法算得上Spring Jdbc的核心方法了,毕竟JdbcTemplate的很多public方法内部实际上是调 ...
- 借鉴bootstrap的方法,快速实现响应式开发
响应式开发 注意:任何框架都是一个辅助手段,只需借鉴其中的核心思想,把其中核心的东西提炼出来即可.不要因为,提到响应式就想到只能够用bootstrap来实现,框架现有的东西是可以提高我们的效率,但是其 ...