在独立页面中使用 c# 和 razor
Using c# and razor in standalone pages
到目前为止,我一直在 MVC 和命令行应用程序中使用 razor 和 c#,但如果我可以在独立网页中使用它也将非常有用,用于小型一次性代码片段等,在与您使用经典 ASP 或 PHP 的方式相同,因为它太笨重而无法构建整个项目并编译应用程序。
我尝试只制作一个 .cshtml 页面并在其中放入一些简单的剃刀代码以循环访问一些日期,但 IIS 不会处理它。有没有办法实现我正在寻找的东西?也许这是一个服务器问题而不是编程问题,如果是这样我提前道歉。
是的,除非我遗漏了什么?
只需将以下 web.config
添加到我的站点(Windows 8.1 Pro 上的 IIS 8)意味着 .cshtml
文件的工作方式与 classic ASP / PHP;即 URL 对他们来说是文件系统路径,Razor 代码 运行 很好。
<configuration>
<appSettings>
<add key="webPages:Version" value="2.0"/>
<add key="webpages:Enabled" value="true" />
</appSettings>
<system.web>
<customErrors mode="Off"/><!-- I assume that for little test pages you want easy error reporting! -->
</system.web>
</configuration>
我不好意思承认我不知道它为什么有效。配置键表明它正在使用 ASP.NET 网页,帕特里克霍夫曼在评论中说它正在被淘汰;但我很确定我从来没有安装过Web Matrix,所有这些都是用记事本完成的; IIS 站点文件夹仅包含上述最小 web.config
、几个测试 .cshtml
文件和一个测试子文件夹,以查看 .cshtml
是否会从那里 运行。
我之前对简单的 test/utility 网站所做的类似于上述 UI 的技术,但是 .cs
程序逻辑文件放在 App_Code
文件夹,以便 .NET 即时编译它们。
后者的例子,对于之前没有玩过 /App_Code
的人来说:
1) 创建一个 /App_Code
文件夹
2) 使用您的 class 定义添加完全正常的 .cs
文件:
using System;
namespace Minimal
{
public class Boo
{
public static String Get()
{
return "BOO!";
}
}
}
3) 它被神奇地编译并像任何普通程序集中的代码一样可用。
4) 因此您可以创建如下视图:
<html>
<head></head>
<body>
<h1>@Minimal.Boo.Get()</h1>
</body>
</html>
非常方便;使快速构建的工具和测试变得清晰且易于开发,并且如果它们变得足够成熟,也很容易添加到普通的 VS 项目中。
到目前为止,我一直在 MVC 和命令行应用程序中使用 razor 和 c#,但如果我可以在独立网页中使用它也将非常有用,用于小型一次性代码片段等,在与您使用经典 ASP 或 PHP 的方式相同,因为它太笨重而无法构建整个项目并编译应用程序。
我尝试只制作一个 .cshtml 页面并在其中放入一些简单的剃刀代码以循环访问一些日期,但 IIS 不会处理它。有没有办法实现我正在寻找的东西?也许这是一个服务器问题而不是编程问题,如果是这样我提前道歉。
是的,除非我遗漏了什么?
只需将以下 web.config
添加到我的站点(Windows 8.1 Pro 上的 IIS 8)意味着 .cshtml
文件的工作方式与 classic ASP / PHP;即 URL 对他们来说是文件系统路径,Razor 代码 运行 很好。
<configuration>
<appSettings>
<add key="webPages:Version" value="2.0"/>
<add key="webpages:Enabled" value="true" />
</appSettings>
<system.web>
<customErrors mode="Off"/><!-- I assume that for little test pages you want easy error reporting! -->
</system.web>
</configuration>
我不好意思承认我不知道它为什么有效。配置键表明它正在使用 ASP.NET 网页,帕特里克霍夫曼在评论中说它正在被淘汰;但我很确定我从来没有安装过Web Matrix,所有这些都是用记事本完成的; IIS 站点文件夹仅包含上述最小 web.config
、几个测试 .cshtml
文件和一个测试子文件夹,以查看 .cshtml
是否会从那里 运行。
我之前对简单的 test/utility 网站所做的类似于上述 UI 的技术,但是 .cs
程序逻辑文件放在 App_Code
文件夹,以便 .NET 即时编译它们。
后者的例子,对于之前没有玩过 /App_Code
的人来说:
1) 创建一个 /App_Code
文件夹
2) 使用您的 class 定义添加完全正常的 .cs
文件:
using System;
namespace Minimal
{
public class Boo
{
public static String Get()
{
return "BOO!";
}
}
}
3) 它被神奇地编译并像任何普通程序集中的代码一样可用。
4) 因此您可以创建如下视图:
<html>
<head></head>
<body>
<h1>@Minimal.Boo.Get()</h1>
</body>
</html>
非常方便;使快速构建的工具和测试变得清晰且易于开发,并且如果它们变得足够成熟,也很容易添加到普通的 VS 项目中。