Razor:从aspx到cshtml常见错误及正确书写方法
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可测试,不知道如何实现,拭目以待。
点击下载免费的敏捷开发教材:《火星人敏捷开发手册》
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)