1
votes

C # création d'une ligne HTML avec échappement

Je crée une boucle dans laquelle chaque ligne est une ligne HTML assez longue sur la page. J'ai essayé différentes combinaisons de @ et de "" ", mais je n'arrive tout simplement pas à comprendre C'est ce que j'ai maintenant, mais les guillemets simples me posent des problèmes sur la page, donc je veux changer tous les guillemets simples en guillemets doubles, tout comme une ligne HTML normale les utiliserait pour les propriétés des éléments: XXX

variables are:
starOrBullet 
appSet
LinkID
tabID (NOT $TabID=)
linkText

BTW, appSet="http://linktracker.swmed.org:8020/LinkTracker/Default.aspx?LinkID="
Can someone help me here?


2 commentaires

Quelles sont les valeurs de vos variables?


Vous pouvez échapper les guillemets dbl dans une chaîne régulière avec \ " ou dans des littéraux de chaîne verbatim avec " ". Exemple: sOutput + = $"

{linkText} < / div> ";


3 Réponses :


2
votes

Vous devez échapper les guillemets doubles (") avec \"

Pour votre cas:

sOutput += "<div class=\"item link-item " + starOrBullet + "\"><a href=\"" + appSet + linkID + "&TabID=" + tabID + "\" target=’_blank’>" + linkText + "</a></div>";

Si vous concatez plusieurs chaînes , vous devez utiliser StringBuilder pour des raisons de performances.


0 commentaires

2
votes

Vous pouvez utiliser une chaîne textuelle et échapper un guillemet double avec un guillemet double. Ce sera donc un guillemet double.

var mystring = String.Join(
               Environment.NewLine,
               "First Line",
               "Second Line",
               "Third Line");

Vous pouvez également raccourcir votre chaîne en procédant comme suit:

Méthode 1

string mystring = "First Line \n" +
                  "Second Line \n" +
                  "Third Line \n";


0 commentaires

0
votes

Vous devez prendre l'habitude d'utiliser la classe C # pour générer plutôt une concaténation Html. Veuillez trouver ci-dessous le code pour générer du HTML en utilisant C #.

Consultez ce lien pour plus d'informations https://dejanstojanovic.net/aspnet/2014/june / generation-html-string-in-c /

https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.htmltextwriter

Trouvez le code ci-dessous pour votre question

protected void Page_Load(object sender, EventArgs e)
        {
            string starOrBullet = "star-link";
            string appSet = "http://linktracker.swmed.org:8020/LinkTracker/Default.aspx?LinkID=";
            string LinkID = "2";
            string tabID = "1";
            string linkText = "linkText_Here";
            string sOutput = string.Empty;

            StringBuilder sbControlHtml = new StringBuilder();

            using (StringWriter stringWriter = new StringWriter())
            {
                using (HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter))
                {
                    //Generate container div control  
                    HtmlGenericControl divControl = new HtmlGenericControl("div");
                    divControl.Attributes.Add("class", string.Format("item link-item {0}",starOrBullet));                    

                    //Generate link control  
                    HtmlGenericControl linkControl = new HtmlGenericControl("a");
                    linkControl.Attributes.Add("href", string.Format("{0}{1}&TabID={2}",appSet,LinkID,tabID));
                    linkControl.Attributes.Add("target", "_blank");
                    linkControl.InnerText = linkText;

                    //Add linkControl to container div  
                    divControl.Controls.Add(linkControl);

                    //Generate HTML string and dispose object   
                    divControl.RenderControl(htmlWriter);
                    sbControlHtml.Append(stringWriter.ToString());
                    divControl.Dispose();
                }
            }

            sOutput = sbControlHtml.ToString();
        }


0 commentaires