当前上下文中不存在 'media' 这个名称。

73
在一个ASP.NET MVC 3的Razor视图中,我有以下代码:
<!DOCTYPE html>
<html>
<head>
 <style type="text/css">
    @media print
    {
    table { page-break-inside:auto; width: 100%; }
    tr    { page-break-inside:avoid; page-break-after:auto }
    thead { display:table-header-group }
    tfoot { display:table-footer-group }
    }
 </style>
</head>
<body>
<table>

然而我遇到了错误:

The name 'media' does not exist in the current context.

感谢您的选择。
谢谢。

你什么时候遇到了那个错误? - Kevin Boucher
调试之前,在屏幕上该单词下方会出现一条红色波浪线。 - user1108948
2个回答

170

@ 是 Razor 中的保留字符。但你可以使用 @@ 进行转义:

@@media print

17
在 Razor 视图中,@ 符号是代码之前的魔法字符。
在您的情况下,请使用 2 个 @@ 符号;否则 Razor 将认为这是一个代码/表达式块。
例如:
@@media print.

或者,您可以使用Html.Raw方法:
@Html.Raw("@")media print

一个例子是在打印Twitter用户名时使用,其中包含字符@这里是一个很好的MSDN链接,可以了解更多关于razor语法的信息,这里是Phil Hack提供的链接。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接