2009-06-10 20 views
0

Ich habe einige HTML, die in jeder Seite sein wird, so dass ich es in einer CS-Datei steckte. Dieses Stück html hat viele Anführungszeichen, also würde ich es vorziehen, nicht jedem (\ ") zu entkommen. Es ist nicht schwer, da ich find/replace benutzen kann, aber ich wollte wissen. Gibt es eine nette Weise, HTML und zu mischen CS, so kann ich leicht die Seite erzeugen?Mischen von HTML und C#

Antwort

0

Wenn Sie Literale verwenden @string Sie doppelte Anführungszeichen mit zwei doppelten Anführungszeichen entweichen kann. Etwas mehr lesbar (aber nicht viel) ...

4

Für den speziellen Fall von Doppel Zitat, es gibt nicht eine viel bessere Möglichkeit Im Allgemeinen können Sie wörtlich Strings verwenden Sie werden Zeilenumbrüche verarbeiten und alle Escape-Zeichen außer ", die mit "" ersetzt werden sollte:..

Response.Write(@"<html> 
<body> 
    <h1 style=""style1"">Hello world</h1> 
</body> 
</html>"); 
1

Sie können dies tun, mit einfachen Anführungszeichen:

string MyHTML = @"<html> 
    <body> 
     <div class='foo'>...</div> 
    </body> 
</html>"; 

oder tun doppelte Anführungszeichen:

string MyHTML = @"<html> 
    <body> 
     <div class=""foo"">...</div> 
    </body> 
</html>"; 
0

Sie können das @ verwenden es buchstäblich zu behandeln, oder Sie einen Blick auf die HtmlTextWriter nehmen Klasse für einen programmatischen Ansatz.

2

Sie das Erbe verwenden können, gehören Richtlinien in asp.net

Anschließend können Sie Ihre HTML-Block in einer separaten HTML-Datei haben.

<!-- #include PathType = FileName --> 
8

Anstatt Ihre HTML-Code in C# -Code mit bewegen sie Datei Ressourcen. Hier ist, wie (für Visual Studio 2008):

  1. auf das Projekt der rechten Maustaste, wählen Sie "Add Item Neu ..."
  2. Select Resource File. Belassen Sie Resource.resx als Dateiname. Eine Eingabeaufforderung wird angezeigt. Wählen Sie "Ja", um die Datei im Ordner "App_GlobalResources" zu speichern.
  3. Doppelklicken Sie auf Resource.resx. Fügen Sie ein neues Zeichenfolgenelement MyHtml hinzu.

in Ihrem Code verwenden Resources.Resource.MyHtml:

protected void Page_Load(object sender, EventArgs e) 
{ 
    Response.Write(Resources.Resource.MyHtml); 
} 

Siehe auch: How to: Create Resource Files for ASP.NET Web Sites

+0

+1, löste das zugrunde liegende Problem – Kevin

+0

Macht Sinn, wenn Sie vollständigen HTML ausgeben möchten, aber für Situationen wie Seitengenerierung in ASP.NET MVC (wo Ihre Seite nur eine lückenhafte Substitution von Werten ist), ist es bei weitem nicht ideal habe jedes kleine Stück HTML in der Ressourcendatei. –

3

Warum würden Sie nicht nur Stick, dass HTML in ein Steuer Benutzer und fügen Sie dann nur, dass Benutzersteuerung für alle Seiten, die diesen HTML-Code verwenden?

3

Sie sagen das gleiche HTML auf jeder Seite. Haben Sie darüber nachgedacht, eine Masterseite mit einem Platzhalter für Inhalte für Ihren gemeinsamen Inhalt zu verwenden? Sie könnten dies mit der von King Avitus erwähnten Benutzersteuerungsidee kombinieren.