voi*_*oid 11 .net asp.net asp.net-mvc razor asp.net-mvc-3
我刚开始使用Razor而不是WebForms-ViewEngine.现在在我的Razor-View中我有这样的事情:
@{
int i = 42;
string text;
if (i == 42)
{
text = "i is 42!";
}
else //i is not 42 //<- Error here
{
text = "i is something else";
}
}
Run Code Online (Sandbox Code Playgroud)
我得到一个警告,在运行时它在else行中得到一个异常:
期望"{"但找到"/".块语句必须用"{"和"}"括起来.您不能在CSHTML页面中使用单语句控制流语句.
显然,编译器不喜欢else和{之间的注释.我也尝试用@*和/*进行评论,它给出了类似的错误消息.
反正有没有像我想要的那样在剃刀上发表评论?
是的我知道我可以像这样解决它:
@{
int i = 42;
string text;
if (i == 42)
{
text = "i is 42!";
}
else
{ //i is not 42
text = "i is something else";
}
}
Run Code Online (Sandbox Code Playgroud)
但是它不符合我们的编码指南,并且对同一行的评论使我的意图更加明确.
Dar*_*rov 12
这就是Razor解析器的构建方式.如果您不喜欢它的方式,您可以随时在MS连接上提交错误/功能请求,并希望人们会投票支持它,它将在未来版本的解析器中修复/实现.我个人不会因为我不在乎(见下面原因).
这就是说,为什么要关心?我的意思是你不应该在Razor页面中编写代码.Razor页面旨在用作视图.在ASP.NET MVC中,视图用于显示视图模型中从控制器操作传递给它的一些信息.标记主要,与HTML帮助器混合并显示视图模型中的信息.但是C#代码是不行的.所以你所谓的代码和你在问题中显示的内容在Razor视图中严格无关.
| 归档时间: |
|
| 查看次数: |
1334 次 |
| 最近记录: |