Перенос данных(переменных) из C# в HTML

86
02 октября 2021, 18:50

Есть шаблон отчета на языке HTML и создана программа для расчетов на языке C#. Нужно что бы значения из программы перетащить в шаблон HTML не знаю как это сделать подскажите пожалуйста.

`

<!DOCTYPE html> 
 
<html lang="ru" xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta charset="utf-8" /> 
<title>Расчет</title>   
</head> 
<body> 
<h1 id="top">ПРОТОКОЛ РАСЧЕТА</h1> 
<p> 
 X= <br /> 
 Y= <br /> 
 Z= <br /> 
 </p> 
</body> 
</html>

и пример кода в C#

public static double x, y, z;
private void button1_Click(object sender, EventArgs e)
{
    x=5;
    y=1;
    z=x+y;
}

Это примитивный пример но все же. Вот как можно предать значения X,Y,Z в уже готовый файл html. и возможно ли передать данные из C# в HTML? Помогите пожалуйста Если не коректно задан вопрос оповестите я попытаюсь скоректировать его более понятно

Answer 1

Способов сделать подобное существует множество. Это и Razor, и XSLT...
Всё зависит от исходных данных.
В каком виде ваш шаблон? Это просто текст разметки? Или некий объект, содержащий DOM?

Если в вашей власти выбрать/изменить способ представления шаблона, то я могу предложить использовать linq2xml. Т. к. xhtml является также well-formed xml.

int x = 5;
int y = 1;
int z = x + y;
XNamespace ns = "http://www.w3.org/1999/xhtml";
var doc = new XDocument(
    new XDocumentType("html", null, null, null),
    new XElement(ns + "html", new XAttribute("lang", "ru"),
        new XElement(ns + "head",
            new XElement(ns + "meta", new XAttribute("charset", "utf-8")),
            new XElement(ns + "title", "Расчет")
        ),
        new XElement(ns + "body",
            new XElement(ns + "h1", new XAttribute("id", "top"), "ПРОТОКОЛ РАСЧЕТА"),
            new XElement(ns + "p",
                "X= " + x, new XElement(ns + "br"),
                "Y= " + y, new XElement(ns + "br"),
                "Z= " + z, new XElement(ns + "br")
            )
        )
    )
);
Console.WriteLine(doc); // doc.Save(...);

На мой взгляд, всё просто и понятно.
Этот способ гарантирует правильное экранирование всех символов и корректную разметку.
При добавлении новых элементов не забывайте указывать пространство имён (ns).

READ ALSO
GUILayout.Button , как сделать активной-неактивной в EditorWindow?

GUILayout.Button , как сделать активной-неактивной в EditorWindow?

Есть кнопка GUILayoutButton("Обработать json, разместив объекты на карте") в окне EditorWindow

167
Как добавить закладки в pdf

Как добавить закладки в pdf

Есть интересная библиотека HiqPdf для конвертирования HTML в PDFЕсть несколько html файлов и я без проблем могу сконвертировать их в один общий PDF

94
Вывод массива foreach php

Вывод массива foreach php

есть такой код

215
Запись массива в sql php

Запись массива в sql php

Есть такой код, который выводит (1)(2)(3)

94