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可测试,不知道如何实现,拭目以待。

时间: 2024-10-22 04:54:42

MVC 使用cshtml的一些基础知识-和相关整理的相关文章

linux内存基础知识和相关调优方案

内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁.计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大.内存作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据.只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行.对于整个操作系统来说,内存可能是最麻烦的的设备.而其性能的好坏直接影响着整个操作系统. 我们知道CPU是不能与硬盘打交道的,只有数据被载入到内存中才可

第一天上午——HTML网页基础知识以及相关内容

今天上午学习了HTML基础知识以及相关内容,还有DW的基本使用方法. HTML(HyperText Markup Language):超文本标记语言,超文本:网页中除了包含文本文字之外,还包含了图片,音频,视频等多媒体,所以叫超文本.之所以是标记语言,是因为网页的内容基本都是有一个个标签构成的 首先,是HTML语言和其他语言的对比. HTML:解析执行,逻辑性不强,标签较多,不需要搭建环境.浏览器解析代码,根据源代码从上到下一句一句执行. C等其他语言:编译执行,逻辑性强,需要搭建环境. 然后,

linux基础知识及相关命令

Linux基础 red hat linux 安装及服务基础 关iptables防火墙:  chkconfig iptables off 关闭selinux: 打开/etc/sysconfig/selinux文件 修改"SELINUX=disabled" Linux启动过程: 1.开机blos自检 2.MBR引导 MBR(主引导记录 位于磁盘0柱面 0磁道 1扇区,共512字节)512=446(GRUB引导器)+64(分区表)+2(结束校验标记) 3.GRUB菜单启动:对应文件在/boo

[设计模式整理笔记 一] 基础知识

[设计模式整理笔记 一] 基础知识 [导读] [设计模式整理笔记 一] 基础知识 [设计模式整理笔记 二] 简单工厂模式(Simple Factory) [设计模式整理笔记 三] 工厂模式(Factory) [设计模式整理笔记 四] 抽象工厂模式(Abstract Factory) [设计模式整理笔记 五] 创建者模式(Builder) [设计模式整理笔记 六] 工厂模式与创建者模式总结 [设计模式整理笔记 七] 原型模式(ProtoType) [设计模式整理笔记 八] 单例模式(Singlet

密码学基础知识整理

最近在研究密码学加密,签名方面的东西.经过几天的学习对一些基础知识进行一下整理 PKI:PKI是Public Key Infrastructure的首字母缩写,翻译过来就是公钥基础设施,在X509标准中PKI为支持共有密钥管理并且支持认证.加密.完整性.可追究性服务的基础设施. CA:CA是 Certificate Authority首字母的缩写,翻译过来的意思是:证书认证授权机构,其主要作用是负责发放管理数字证书的具有权威性的第三方机构.CA通过证书证实他人的公钥信息,证书上有CA的签名.用户

MVC基础知识

1.ASP.NET MVC请求过程 1 2.Controller (1) 控制器在ASP.NET MVC中扮演着处理客户端请求的角色 1)必须实现System.Web.Mvc.IController接口 ->通常直接继承System.Web.MVC.Controller类 2)必须要以Controller结尾 3)通过不同的Action来处理具体的客户端请求 3.Action (1) 是指在继承了System.Web.Mvc.Controller类中所定义的返回值的类型可以兼容 (2)Actio

Spring MVC之基础知识:HTTP

故事还得从30年前的某个夜晚说起......这是我们经常在电视里看到的经典台词.借用一下,对于Spring MVC,我们还得从HTTP协议说起. HTTP协议 HTTP协议是一个应用层.基于请求/响应模型.无状态的协议.无状态意味着每个请求都是独立的,换而言之,各个请求之间如果需要互相传递信息,协议本身是无法帮我们完成的.这就是为什么需要额外的技术用于保存请求之间的状态,例如:cookie在客户端保存某些状态信息或是session在服务器保存状态信息. 统一资源定位符(URL) 统一资源定位符(

JSP SERVLET 基础知识

jsp(java server page)和servlet是JAVA EE规范的两个基本成员,是JAVA WEB开发的重点也是基础知识.JSP本质上也需要编译成SERVLET运行. JSP比较简单,可以理解为在HTML页面中嵌入JAVA代码,或使用各种JSP标签,再辅以各种JAVA BEAN. <!-- JSP声明 --> <%! public String info(){return "Hello jsp";} %> <div> <!-- J

Spring框架基础知识

本人博客文章网址:https://www.peretang.com/basic-knowledge-of-spring-framework/ Spring框架简介 Spring , 一个开源的框架 , 由Rod Johnson创建. Spring是为了解决企业应用开发的复杂性而创建的 , 可以让简单的JavaBeans/POJO来实现之前只有EJB[1]才能完成的事情. Spring还提供了大量API简化与其他第三方框架的集成. 纵览Spring , 你会发现Spring可以解决非常多的问题 ,