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】图论基础知识及相关例题
此讲适合参加全国联赛二试的同学 介绍图论和我们学习的一般的知识点比如函数一样,首先要介绍一些定义,只是图论里的定义相对较多,这里给出部分在竞赛中常用到的: 就像学函数的时候,学了定义和相关概念后我们要 ...
随机推荐
- Scala多重继承及AOP
package traitandclass /** * Created by zhen on 2018/8/23. */ class Human { println("Human" ...
- [20170628]11g修改用户名.txt
[20170628]11g修改用户名.txt --//昨天看了链接,提到修改用户名:http://www.oratea.com/2017/06/26/oracle-11g%e4%bf%ae%e6%94 ...
- node.js 基础学习
node.js 是一个 javaScript 运行环境,可以让 js 运行在服务端. 在 nodejs 环境下,可以运行 javascript 基本语法,可以在nodejs 中执行一些无法在浏览器端执 ...
- Django2.0.1开发框架搭建
1.使用vs2017创建空白django项目 2.右键python环境的env---安装python包 升级django到2.0.1和setuptools到38.4.0版本,具体环境如下: 3.配置 ...
- EF 排序扩展
public static class LinqOrderEx { private static IOrderedQueryable<T> OrderingHelper<T>( ...
- Cache 和 Buffer 都是缓存,主要区别是什么?【转】
作者:Towser 链接:https://www.zhihu.com/question/26190832/answer/32387918 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商 ...
- 【PAT】B1082 射击比赛(20 分)
水提水题,直接贴代码啦 #include<cstdio> #include<algorithm> using namespace std; struct ppp{ int id ...
- Hadoop2.7.6_08_Federation联邦机制
前言: 本文章是在 Hadoop2.7.6_07_HA高可用 的基础上完成的,所以不清楚的可参见这篇文章. 1. Hadoop的federation机制 文件的元数据是放在namenode上的,只 ...
- golang类型判断
_.ok:=interface{}(a).(B) 此语句用于判断对象a是否是B类型 也可以判断对象a是否实现了B接口 package main import "fmt" type ...
- 基于Redis实现的抢购代码示例
示例代码是基于博客 https://blog.csdn.net/qq1013598664/article/details/70183908的错误案例修改而来,如果有问题望多多指点,错误代码可以去原文查 ...