2017-03-26 5 views
0

Ich möchte HTML-Helfer in ASP.net erstellen. Was ist der einfachste Weg, HTML-String/Templates zu erstellen. Ich möchte HTML-Blöcke auf diese Weise erstellen:Wie formatiert man HTML-Strings in C#?

<div class="simple"> 
    <span>Text</span> 
</div> 

Also, ich habe nicht alle Zitate aus doppelt zu einfachen Anführungszeichen wie folgt neu schreiben wollen:

<div class='simple'></div> 

Es ist nicht bequem in größeren HTML-Codes. Gibt es also irgendeine Gelegenheit/Syntax zu C# behandelt es wie HTML.

Zum Beispiel in ES6 können Sie verwenden:

`<div class="simple"></div>` 

Deshalb wird es groß sein, wenn es in C# möglich ist.

+0

Können Sie bitte Ihre Frage klären, weil ich nicht verstehen kann, was Sie brauchen. Möchten Sie doppelte Anführungszeichen von Attributen in einfache Anführungszeichen konvertieren? – CodingYoshi

+0

Wenn Sie einen HTML-Code kopieren/einfügen, können Sie ihn von doppelten in einfache Anführungszeichen umwandeln. In Javascript müssen Sie das nicht tun. nur die html in diese Anführungszeichen setzen: ''. Also, was ist das Beste in C# zum Kopieren/Einfügen von HTML? – ktom

+0

Warum machen Sie nicht einen Fund und ersetzen alle? Oder möchtest du es programmatisch machen? – CodingYoshi

Antwort

0

Ein " in einer literalen Zeichenfolge kann als \" geschrieben werden.

z.

string s = "<div class=\"simple\"></div>"; 

Produziert

<div class="simple"></div> 
2

Das Wichtigste ist, das Zitat zu entkommen, so dass es innerhalb der Zeichenfolge gültig wird.

können Sie dann mit einer einfachen string format, string builder, tag builder oder einer nubmer von anderen Ansätzen je nachdem, wie komplex Ihr HTML-Codeblock die Zeichenfolge aufzubauen ist. Denken Sie daran,

using System; 
namespace MvcApplication.Helpers 
{ 
    public class TagHelper 
    { 
     public static string DivWithChild(this HtmlHelper htmlHelper, className, string text) 
     { 
      return string.Format("<div class=\"{0}\"><span>{1}</span></div>",className,text); 
     } 
    } 
} 

, dass alle Hilfsmethoden nicht auf der Seite erklärt wird den Namespace in den Web-Config hinzugefügt haben müssen Sie, damit Sie sie verwenden.

<system.web.webPages.razor> 
    <namespaces> 
     <!- add here..... --> 
     <add namespace="MvcApplication.Helpers.TagHelper"/> 

     </namespaces>   
    </system.web.webPages.razor> 
0

können Sie verwenden wörtlich @ die Zeichenfolge zu starten und " mit Doppel "" zu entkommen wie folgt.

using System; 

namespace ConsoleApp1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string html = @" 
       <div class=""simple""> 
        <span> Text </ span > 
       </ div > 
      "; 

      Console.WriteLine(html); 

     } 
    } 
} 

enter image description here

-1

C# unterstützt HTML/XML-Literale nicht, aber VB.NET tut. Wenn Sie häufig HTML-Snippets bearbeiten, können Sie in einem VB.NET-Modul/Assembly dafür Helfer erstellen und diese aus Ihrem C# -Code aufrufen. Siehe XML literals.