我正在使用 ASP .NET MVC 4 来生成 Web 应用程序。
我将各种编程语言的代码存储在数据库中,包括积极使用尖括号 (<>) 的 C#。我使用 javascript 库在屏幕上逐字呈现此代码。一些研究表明 @Html.Raw() 是产生未编码输出的首选方法,但实践表明,这种方式产生的输出并不是真正的“原始”,而且似乎 Razor 会在我的代码并尝试“纠正”错误的“HTML”。
最终结果不是有效的类 C 代码。哎呀。
是否有某种方法可以绕过 Razor 的任何类型的处理并将查询中的代码直接输出到视图?
编辑:
这是让我特别讨厌的例子:
using System;
public class Greeter {
public static void Main() {
string name = "<Your Name>";
Console.WriteLine("Hello, " + name + "! Welcome to C#.");
}
}
相反,通过 Html.Raw() 打印到 HTML 输出的是:
using System;
public class Greeter {
public static void Main() {
string name = "<your name="">";
Console.WriteLine("Hello, " + name + "! Welcome to C#.");
}
}
</your>
编辑2:
应该承认原始 C# 不是有效的 HTML。该代码实际上是用 javascript 读取的,并经过特定于在 HTML 中呈现代码的编码(使用 codemirror)。这就是为什么编码的 HTML(实际上会经历两次编码)和“更正的 HTML”(这使得 C# 乱码)都不足以满足我的特定需求。这就是为什么我想按原样输出我的数据。
编辑3:
澄清一下,我的问题与如何在 HTML 中呈现代码无关。我的问题是,如何使用 Razor 或通过 ASP .NET MVC 提供的其他一些实用程序来实现对视图的原始底层页面源中数据单元的输出的完全控制?@Html.Raw() 似乎没有达到这个预期的结果。