如果我看一下Razor View引擎,我会看到一个非常好的、简洁的语法,它与生成html没有特别的联系.所以我想知道,在"普通的".NET环境中使用ASP.NET之外的引擎(例如,生成文本、代码等)有多容易?

任何指针,例子, comments 或解释都是受欢迎的.

推荐答案

这里有两个问题:

  1. 是的,您可以在ASP.NET应用程序域的上下文之外运行Razor View引擎,如Andrew的博客:http://vibrantcode.com/blog/2010/11/16/hosting-razor-outside-of-aspnet-revised-for-mvc3-rc.html中所述
  2. 然而,Razor仍然主要关注于生成类似xml的标记(例如HTML),因为Razor解析器使用<tags>来确定代码和标记之间的转换.您可能可以使用它生成任何文本,但当您的输出与Razor关于您的意图的假设不匹配时,您可能会遇到问题.

例如,虽然这是有效的Razor代码(因为<div>标签):

@if(printHello) {
   <div>Hello!</div>
}

以下代码段无效(因为Hello!仍被视为代码):

@if(printHello) {
   Hello!
}

但是,有一个特殊的<text>标记可用于强制多行块转换(<text>标记将不会被渲染):

@if(printHello) {
   <text>Hello!
   Another line</text>
}

还有一种较短的语法可以使用@:强制单行转换:

@if(printHello) {
   @:Hello!
}

Asp.net相关问答推荐

Razor 页面客户端站点验证不起作用

使用 jQuery 验证插件匹配两个字段

ASP.NET MVC 中的 ASP.NET AJAX 与 jQuery

如何在 ASP.NET Web API 中使用非线程安全的 async/await API 和模式?

使用 Lucene.NET 索引 .PDF、.XLS、.DOC、.PPT

倒带请求正文流

AddDefaultTokenProviders:它是什么以及如何使用那些默认提供者?

使用 ASPNet_Regiis 加密自定义配置部分 - 你能做到吗?

ServiceStack 示例应该以什么顺序被理解?

在 ASP.NET 中使用 MasterPages 时使用 JQuery 的正确方法?

ASP .NET 单例

MVC 模型布尔显示是或否

远程计算机无法连接到 Visual Studio Web 服务器

使用 ASP.NET 进行重定向后获取

IIS url 重写角色,除了一些 url

通过 CultureInfo 格式化字符串

如何将代码中的变量调用到aspx页面

可以在不 destruct 站点的情况下将 MIME 类型添加到 web.config 吗?

RegisterStartupScript 不适用于 ScriptManager、Updatepanel.这是为什么?

Session.Clear() 与 Session.RemoveAll()