Minulla on tällainen koodi. Onko olemassa tapa helpottaa kirjoittamista ja ylläpitoa? C # .NET 3.5: n käyttö.
string header(string title)
{
StringWriter s = new StringWriter();
s.WriteLine("{0}","<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">");
s.WriteLine("{0}", "<html>");
s.WriteLine("<title>{0}</title>", title);
s.WriteLine("{0}","<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">");
s.WriteLine("{0}", "</head>");
s.WriteLine("{0}", "<body>");
s.WriteLine("{0}", "");
}
Voisin myös vain kirjoittaa:
s.WriteLine("{0}", @"blah blah
many
new
lines
blah UHY#$&_#$_*@Y KSDSD<>\t\t\t\t\t\tt\t\t\\\t\t\t\t\\\h\th'\h't\th
hi
done");
Se toimii, mutta minun on korvattava kaikki"
kanssa""
.
Kaikki vastaukset
Olet todennäköisesti parempi käyttää
HtmlTextWriter
tai anXMLWriter
kuin tavallinenStringWriter
. He huolehtivat pakenemisesta puolestasi ja varmistavat, että asiakirja on hyvin muotoiltu.Tämä sivunäyttää perustiedot
HtmlTextWriter
luokka, jonka ydin on:Kun käsittelen tätä ongelmaa muilla kielillä, erotan koodin ja HTML: n. Vähän niin kuin:
1.) Luo HTML-malli. käyttää
[varname]
paikkamerkit korvatun / lisätyn sisällön merkitsemiseksi.2.) Täytä mallimuuttujat taulukosta tai rakenteesta / kartoituksesta / sanakirjasta
Tiedän, että kysyit C #: sta, mutta jos olet valmis käyttämään mitä tahansa .Net-kieltä, suosittelen Visual Basicia juuri tähän ongelmaan. Visual Basicissa on ominaisuus nimeltä XML Literals, jonka avulla voit kirjoittaa tällaista koodia.
Tämän avulla voit kirjoittaa suoran HTML-koodin ilmaisureikillä vanhaan ASP-tyyliin ja tekee koodistasi erittäin luettavan. Valitettavasti tämä ominaisuus ei ole C #: ssä, mutta voit kirjoittaa yhden moduulin VB: hen ja lisätä sen viitteenä C # -projektiisi.
Kirjoittaminen Visual Studiossa mahdollistaa myös oikean sisennyksen useimmille XML-kirjastoille ja lausekkeiden kokonaisuuksille. Ilmentymisreikien sisennys on parempi mallissa VS2010.
Käytä
XDocument
luoda DOM, kirjoita se sitten käyttämälläXmlWriter
. Tämä antaa sinulle ihanan ytimekkään ja luettavan merkinnän sekä kauniisti muotoillun tuloksen.Ota tämä esimerkkiohjelma:
Tämä tuottaa seuraavan tuotoksen:
Voisit käyttää
System.Xml.Linq
esineitä. Ne suunniteltiin kokonaan vanhastaSystem.Xml
päivät, jotka tekivät XML: n rakentamisen tyhjästä todella ärsyttäviksi.Luulen, että doctypein lisäksi voit helposti tehdä jotain seuraavista:
Selkein tapa on käyttää XmlWriter-objektia. Tätä voidaan käyttää kelvollisen HTML-koodin tuottamiseen ja se huolehtii kaikista ikävistä pakosarjoista.
Voit käyttääT4-mallitHTML: n (tai minkä tahansa muun) luomiseen koodistasi. katso tämä:http://msdn.microsoft.com/en-us/library/ee844259.aspx
Jos haluat luoda HTML-asiakirjan, joka on samanlainen kuin XML-asiakirja C #: ssä, voit kokeilla Microsoftin avoimen lähdekoodin kirjastoa,HTML-ketteryyspaketti.
Se tarjoaa HtmlDocument-objektin, jolla on hyvin samanlainen sovellusliittymä kuin
System.Xml.XmlDocument
luokassa.ASP.NET: n avulla voit luoda HTML-koodisi verkkosivujen kontekstin ulkopuolelle.Tässä on artikkelijoka osoittaa kuinka se voidaan tehdä.
Voit käyttää joitain kolmannen osapuolen avoimen lähdekoodin kirjastoja vahvan kirjoitetun (X) HTML-koodin luomiseen, kutenCityLizard Frameworktai Sharp DOM.
PäivittääEsimerkiksi
Tämä ei kuitenkaan ole yleinen ratkaisu, mutta jos oppilaalla on oltava tai ylläpitää sähköpostimalleja, System.Webissä on sisäänrakennettu luokka nimeltäMailDefinition. Tätä luokkaa käyttävät ASP.NET-jäsenohjaukset HTML-sähköpostien luomiseen.
Korvaa samanlainen merkkijono yllä mainitut asiat, mutta pakkaa kaikki sinulle MailMessageen.
Tässä on esimerkki MSDN: stä:
Kun Razor otettiin käyttöön ASP.net MVC: ssä, paras tapa kirjoittaa HTML C #: ksi on Razor Engine.
Sapluuna:
Katso täydellinen näytetässä
Voit kirjoittaa omat luokkasi sen Render-menetelmällä ja muilla attribuuteilla välttääksesi suurta sotkua, jos käytät sitä paljon, ja käytä sitten myös HTMLWriteria tai xmlwriteria. Tätä logiikkaa käytetään asp.net-sivuilla, voit periä webControlista ja ohittaarenderöintimenetelmä, mikä on hienoa, jos kehität palvelinpuolen ohjaimia.
Tämävoisi olla hyvä esimerkki.
Terveiset
Se riippuu todella siitä, mihin olet menossa, ja erityisesti siitä, millaista esitystä todella tarvitset.
Olen nähnyt ihailtavia ratkaisuja vahvasti kirjoitettuun HTML-kehitykseen (täydelliset ohjausmallit, olkoon se sitten ASP.NET-verkko-ohjaimet tai vastaavia), jotka vain lisäävät hämmästyttävän monimutkaisen projektin. Muissa tilanteissa se on täydellinen.
C # -maailman ensisijaisuusjärjestyksessä
Kirjoitin nämä luokat, jotka palvelivat minua hyvin. Se on yksinkertaista mutta käytännöllistä.
HSharp on kirjasto, jota käytetään analysoimaan merkintäkieli, kuten HTML, helposti ja nopeasti. Asentaa:
PM> Install-Package Obisoft.HSharp
ja lähtö:
Etsin jotain, joka näytti jqueryltä dom: n luomiseksi C #: ssä (minun ei tarvitse jäsentää). Valitettavasti ei onnea kevyen ratkaisun löytämisessä, joten loin tämän yksinkertaisen luokan, joka on peritty System.Xml.Linq.XElementiltä. Tärkein ominaisuus on, että voit ketjuttaa operaattorin kuten käyttäessäsi jqueryä javascriptissä, jotta se olisi sujuvampaa. Se ei ole täysin esillä, mutta se tekee mitä tarvitsen, ja jos on kiinnostusta, voin aloittaa kitkan.
Näyte:
ulostulo ylhäältä koodista:
Leave a Reply