繁体   English   中英

在独立页面中使用c#和razor

[英]Using c# and razor in standalone pages

到目前为止,我一直在MVC和命令行应用程序中使用razor和c#,但是如果我可以在独立网页中使用小型一次性代码段等,这也将非常有用。 d使用经典的ASP或PHP,因为它们太笨重,无法制作整个项目并编译应用程序。

我尝试仅制作一个.cshtml页面,并在其中放入一些简单的剃刀代码来循环某些日期,但是IIS不会对其进行处理。 有什么方法可以实现我想要的? 也许这是服务器问题,而不是编程问题,如果是的话,我事先表示歉意。

是的,除非我想念什么?

只需将以下web.config添加到我的站点(Windows 8.1 Pro上为IIS 8),就意味着.cshtml文件的工作方式与经典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>

我很尴尬地承认我不知道它为什么起作用。 config键表明它正在使用ASP.NET网页,Patrick Hofman在评论中说正在逐步淘汰它; 但是我可以肯定我从未安装过Web Matrix,而所有这些操作都是通过记事本完成的。 IIS站点文件夹仅包含上述最小的web.config ,几个测试.cshtml文件和一个测试子文件夹,以查看是否将从此处运行.cshtml

我之前为简单的组合式测试/实用程序站点所做的工作类似于上述针对UI的技术,但是用于程序逻辑的.cs文件放在App_Code文件夹中,因此.NET可以即时对其进行编译。

后者的示例,对于以前没有使用过/App_Code

1)创建一个/App_Code文件夹

2)使用类定义向其添加完全正常的.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项目中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM