【问题标题】:Using c# and razor in standalone pages在独立页面中使用 c# 和 razor
【发布时间】:2015-10-17 11:08:06
【问题描述】:

到目前为止,我一直在 MVC 和命令行应用程序中使用 razor 和 c#,但如果我可以在独立网页中使用它也会非常有用,用于小型一次性代码 sn-ps 等,在与使用经典 ASP 或 PHP 的方式相同,在这种情况下创建整个项目并编译应用程序过于庞大。

我尝试只制作一个 .cshtml 页面并在其中放入一些简单的剃须刀代码以循环访问某些日期,但 IIS 不会处理它。有没有办法实现我正在寻找的东西?也许这更像是一个服务器问题而不是编程问题,如果是这样,我提前道歉。

【问题讨论】:

  • 我理解错了吗?你想用剃须刀做网页?
  • 我想知道是否可以以 PHP 或经典 asp 之类的方式使用它。甚至只是 c# 本身
  • 我想过,但我不想不问就退出。一直希望也许有某种方法或破解
  • 看看asp.net wep页面,它类似于经典的asp和php
  • @ConvertToInt32 将在 ASP.NET 的下一版本中逐步淘汰,因此不要再使用它了。

标签: c# asp.net razor iis-8.5


【解决方案1】:

是的,除非我遗漏了什么?

只需将以下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>

我很尴尬地承认我不知道它为什么会起作用。配置键表明它正在使用 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 项目中。

【讨论】:

  • 你完全正确。谢谢你今天给我的启发。
  • 谢谢帕特里克,我希望我的许多编辑没有混淆这个问题,在我真正发布之前我应该​​多玩一点:)
  • 没问题。它起作用的原因是调用 cshtml 是由 ASP.NET ISAPI 处理程序处理的,而不是 ASP.NET MVC。
  • 没问题,我自己直到今天才开始玩它才知道它这么简单:)
猜你喜欢
  • 2019-04-06
  • 1970-01-01
  • 2014-01-09
  • 2021-09-13
  • 2017-12-11
  • 2020-07-29
  • 2018-01-26
  • 1970-01-01
  • 2011-07-20
相关资源
最近更新 更多