我最近升级从ASP.NET MVC3(剃刀),以MVC4(Razor2)我的网站,并在此过程中发现了什么好像在Razor视图引擎重大更改。
该方案(大大简化)如下所示。
@model IEnumerable<string>
@{ Layout = null; }
<!DOCTYPE html>
<html>
<body>
<div>
@foreach (var x in Model)
{
@string.Format("Foo bar: {0}", x) // Errors in MVC4/Razor2
}
</div>
</body>
</html>
这部作品在MVC3 /剃刀正常,但是在MVC4 / Razor2中string.Format
线导致的错误:
之后“@”字符意外“串”的关键字。 一旦里面的代码,你不需要前缀结构,如“串”和“@”。
如果去掉@
,视图引擎,然后要求你终止string.Format
用分号线。 然而,然后ReSharper的警告(确实如此):
不使用纯方法的返回值。
这两个补丁,我发现这是要么使用<text>
:
<text>@string.Format("The value {0}", x)</text>
或者更好奇的方法使用@:@
:
@:@string.Format("The value {0}", x)
这是Razor视图引擎已知和记录的变化?