Razor:从aspx到cshtml常见错误及正确书写方法

news/2024/7/5 3:42:10

http://blog.csdn.net/cheny_com/article/details/6298496

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

 

点击下载免费的敏捷开发教材:《火星人敏捷开发手册》


http://lihuaxi.xjx100.cn/news/245422.html

相关文章

c语言读文件一行为一个数组元素,c语言数组练习习题(14页)-原创力文档

第 7章 数组习题A 卷1.单项选择题(1) int a[4]{5,3,8,9};其中a[3]的值为 (D )。DA.5B.3C.8D.9以下 4 个字符串函数中&#xff0c; ( A) 所在的头文件与其他 3 个不同。A. gets B. strcpy C. strlen D. strcmp以下 4 个数组定义中&#xff0c; ( D) 是错误的。 DA. int a[7]; B.…

手机上有android,android-在不同智能手机上的Videoview行为(具有...

使用videoview(或MediaPlayer)在同一活动中的多个videoview中播放rtsp流时遇到兼容性问题.我已经对here这个问题提出了另一个问题,但是现在我知道这不是我的代码负责,因为我在不同的手机上测试了相同的软件,并且可以正常工作.查看用于RTSP设置的logcat Info消息,我发现每部手机…

[Django](1093, quot;You can#39;t specify target table #39;fee_details_invoices#39; for update in...

dele_id Fee_details_invoices.objects.filter(fee_detail_id__infee_id_list, return_type2).values_list(fee_detail_id, flatTrue) Fee_details_invoices.objects.filter(fee_detail_id__indele_id).delete() 报错&#xff1a; django.db.utils.DatabaseError: (1093, &quo…

vmrun 批量创建vmware虚拟机

1 准备模板机 具体步骤如下&#xff1a; 1. 下载镜像安装系统 https://mirrors.aliyun.com/centos/7.5.1804/isos/x86_64/2. 安装完成配置好IP &#xff0c;关闭SELINUX ,关闭firewalld ,修改网卡名 3. 预设置好修改其他机器IP脚本 1.1 安装系统 略 1.2 模板机的设置 修改网卡名…

嵌入式开发之信号采集同步---VSYNC和HSYNC的作用以及它们两者之间的关系

VSYNC和HSYNC的作用以及它们两者之间的关系 VSYNC和HSYNC的作用以及它们两者之间的关系 VSYNC和HSYNC是什么 VSYNC: vertical synchronization&#xff0c;指与显示器的帧数同步。 简单来说就是启用了VSYNC的渲染过程&#xff0c;帧数不会超过显示器的帧数&#xff0c;一个同步…

力邀安卓为鸿蒙效力,期末阅读题答题秘籍2

原标题&#xff1a;期末阅读题答题秘籍2二、答题的步骤细解看了上次的顺口溜你不知道是否明白了一切该怎么做&#xff1f;顺口溜是帮助大家记忆的&#xff0c;毕竟语言过简&#xff0c;为了帮助大家很好答题&#xff0c;我还是详细解释一下吧。答阅读题的第一步&#xff1a;先读…

【TeeChart Pro ActiveX教程】(八):ADO数据库访问(上)

2019独角兽企业重金招聘Python工程师标准>>> 下载TeeChart Pro ActiveX最新版本 介绍 将TeeChart控件连接到ADO.NET数据库可以在设计时使用TeeChart编辑器完成&#xff0c;并在运行时使用几行代码完成。 任何Series都可以使用TeeChart Editor连接到ADO.NET表或查询。…

项目构建之maven篇:2.HelloWorld项目构建过程

文件结构说明: 项目构建生命周期&#xff1a; 清理 编译 測试 打包 执行 部署 清理与编译 hello\pom.xml POM:Project Object Model,项目对象模型 pom.xml与ant的build.xml类似 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.…