ASP .NET MVC 4 を使用して Web アプリケーションを作成しています。
山かっこ (<>) を積極的に使用する C# など、さまざまなプログラミング言語でコードをデータベースに保存します。私は JavaScript ライブラリを使用して、このコードを文字どおり画面に表示します。少し調査したところ、 @Html.Raw() がエンコードされていない出力を生成するための最適な方法であることが明らかになりましたが、実際には、この方法で生成された出力は真に「生」ではないことが示されています。コーディングして、悪い「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 (実際には 2 回エンコードされる) と "修正された HTML" (意味不明な C# を作成する) が、私の特定のニーズに対して不適切な形式の出力である理由です。これが、データをそのまま出力したい理由です。
編集3:
明確にするために、私の質問は、HTML でコードをレンダリングする方法に関連するものではありません。私の質問は、Razor または ASP .NET MVC を介して利用可能なその他のユーティリティを使用して、ビューの元のページ ソース内のデータ ユニットの出力を完全に制御するにはどうすればよいかということです。@Html.Raw() は、この望ましい結果を達成していないようです。