C# 如何:将html代码更改为方法值?
我在c#类库(.dll)中编写了一个非常简单的类。此代码创建一个html文件并将其返回到字符串。 代替:C# 如何:将html代码更改为方法值?,c#,html,C#,Html,我在c#类库(.dll)中编写了一个非常简单的类。此代码创建一个html文件并将其返回到字符串。 代替:NUMBER我想更改它并从此方法添加int-NUMBER public class Class1 { public string HTMLTable(int number) { string html = "<p>NUMBER</p>"; var xDocument = new XDocument(
NUMBER
我想更改它并从此方法添加int-NUMBER
public class Class1
{
public string HTMLTable(int number)
{
string html = "<p>NUMBER</p>";
var xDocument = new XDocument(
new XDocumentType("html", null, null, null),
new XElement("html",
new XElement("head"),
new XElement("body",
XElement.Parse(html))
)
)
)
);
var settings = new XmlWriterSettings
{
OmitXmlDeclaration = true,
Indent = true,
IndentChars = "\t"
};
using (var sw = new StringWriter())
{
using (var writer = XmlWriter.Create(sw, settings))
{
xDocument.WriteTo(writer);
}
return sw.ToString();
}
}
}
公共类1
{
公共字符串HTMLTable(整数)
{
字符串html=“NUMBER”;
var xDocument=新xDocument(
新的XDocumentType(“html”,null,null,null),
新的XElement(“html”,
新XElement(“head”),
新XElement(“身体”,
解析(html))
)
)
)
);
var设置=新的XmlWriterSettings
{
OmitXmlDeclaration=true,
缩进=真,
IndentChars=“\t”
};
使用(var sw=new StringWriter())
{
使用(var writer=XmlWriter.Create(sw,设置))
{
xDocument.WriteTo(writer);
}
返回sw.ToString();
}
}
}
您可以使用字符串插值
var html = $"<p>{number}</p>";
var html=$”{number}”;
更新:或者,对于不想使用更好的字符串插值的人,您可以这样做:
var html = string.Format("<p>{0}</p>", number);
var html=string.Format(“{0}”,数字);
你想要那样的东西吗
string.Format("<p>{0}</p>", number);
string.Format(“{0}”,数字);
另外,我建议您使用
HtmlAgilityPack
来解析和处理HTML。这是一个非常强大的图书馆。您可以在上找到它。如果您有多个部件需要更改,最好的选择是
重要的是要认识到
html
只是一个字符串,而不是html。所以你的问题是如何用其他东西替换字符串的一部分,或者,如何定义包含参数的字符串。好的,但对我来说生成htmlI非常重要。我只是说你的替换可以在字符串上完成,正如@AdamBrown的回答所示。您不需要替换html中的任何内容。
using RazorEngine;
using RazorEngine.Templating; // For extension methods.
var template = "<html><body>Hello @Model.Number, welcome to RazorEngine!</body></html>";
var result = Engine.Razor.RunCompile(template, "templateKey", null, new { Number = 10 });
PM> Install-Package RazorEngine -Version 3.10.0