Logo: Marc Harnist

N° 346 - Javascript et C sharp
 - Le 24/12/2018 Catégorie: c

J'ai créé un code en Javascript (JS) de dix-neuf lignes dans une page html (la vue), puis remplacé ce code par seulement trois lignes en C# (en comptant les commentaires et les espaces), dans le contrôleur de cette page. Source: W3School

Methode: JS
La méthode JS consiste à utiliser la fonctionnalité d'échappement HTML intégrée du navigateur pour traiter la plupart des cas. Pour ce faire, on créé un élément dans l'arborescence DOM et on y défini le contenu avec "innerText" avec la chaîne de caractères qui contient des caractères Html. Enfin, on récupère le contenu codé par le navigateur avec la méthode "innerHTML".
Le problème c'est qu'on doit explorer l'objet pour intervenir sur les chaînes de caractères alors que cet objet est déjà exploré dans le contrôleur de la page. Nous allons donc tenter de trouver une méthode pour écrire plutôt dans le contrôleur et cela fonctionne:

Code JS initial qui sera supprimé:
function MyOwnHtmlSpecialCharsCleaner(string) {
var element = document.createElement("div");
element.innerText = element.textContent = string;
string = element.innerHTML;
return string;
}
//Explorateur d'objet pour appliquer une methode à un élément
function ObjectExplorer(object) {
var i = 0;
for (var property1 in MyObject[i]) {
object[i].MyStringLabel = myOwnHtmlSpecialCharsCleaner(object[i].MyStringLabel);
i++;
}
return object;
Source Stackoverflow

Code dans la contrôleur qui va remplacer tout cela: la méthode Server.HtmlEncode("string")
//Desactivation des caractères html
myString = Server.HtmlEncode(myString);