.CSHTML页面不会呈现

时间:2013-08-12 18:08:36

标签: asp.net razor

我正在尝试让我的服务器运行.cshtml文件。使用WebMatrix 3我可以通过右键单击并选择“在浏览器中查看”来查看页面,但是可以通过localmachine端口查看。如果我尝试从互联网访问页面,我会收到500错误。

以下是我所做的:

  • 我确保安装了MVC 3(但我一直在阅读.cshtml不需要MVC ......我确信无论如何。
  • 我做了整个“恢复为父母”/“恢复为继承”的事情,这可以在许多博客中找到。
  • 我有一段时间收到404错误,所以我在.cshtml扩展名中添加了MIME类型“text / html”。这解决了这个问题,但只导致了我的500错误。

我怀疑它与我的web.config文件有关,因为如果我删除该文件,页面将显示,但它看起来像文本。 例如(在我能想到的最基本的页面中):

@{
   var currentTime = dateTime.Now; 
}

<!DOCTYPE html>

<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>Testing</title>
        <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
    </head>
    <body>
        The current time is @currentTime .
    </body>
</html>

该页面将呈现如下:

@{ var currentTime = dateTime.Now;}当前时间为@currentTime

然而,我对web.config文件中应该或不应该包含的内容毫无头绪。近一个月来,我一直在震撼我的大脑......

以下是web.config文件中的内容:

<configuration>     

    <system.data>
        <DbProviderFactories>
            <remove invariant="System.Data.SqlServerCe.4.0" />
            <add invariant="System.Data.SqlServerCe.4.0" name="Microsoft® SQL Server® Compact 4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
        </DbProviderFactories>
    </system.data>
    <appSettings>
        <add key="webPages:Version" value="2.0"/>
        <add key="webpages:Enabled" value="true" />
    </appSettings>

    <system.webServer>
        <httpErrors errorMode="Detailed" />
    </system.webServer>

</configuration>

非常感谢提前。

2 个答案:

答案 0 :(得分:0)

如果我理解正确您在IIS中运行此问题(Internet信息服务 - Windows上的内置Web服务器)。看起来您正在服务的目录未配置为Web应用程序(但它配置为虚拟目录)。 解决这个问题:

  1. 打开IIS管理器(Win + R并将%systemroot%\ system32 \ inetsrv \ iis.msc复制到运行窗口)
  2. 导航到左侧树中的目录(可能是\ Sites \ Default Web Site \ something
  3. 右键单击它并选择“转换为应用程序”
  4. 这些步骤应该使IIS至少尝试渲染.cshtml。

    另外注意.cshtml(即ASP.NET MVC)比.asp(即简单的ASP.NET)更容易学习和理解

答案 1 :(得分:0)

似乎我有一个旧版本......这在这里得到了解答:

CSHTML rendering text only - static page?