我正在使用HTML Agility Pack打开主HTML文件,然后使用基本的StreamReader打开帮助文件,读取内容,并将它们放在主文件中的正确div中。
它有效,但由于某种原因,一些knockoutjs注释绑定变得搞砸了。
这是html
<select data-bind="css: { 'required': isrequired }" class="answer-single">
<option value="">Choose</option>
<!-- ko foreach: formquestionoptions -->
<option data-bind="value:text, text:text"></option>
<!-- /ko -->
</select>
(我已在Visual Studio调试器中验证过。)
当它被HTML Agility Pack插入时,它就是这样,导致Knockout错误
<select data-bind="css: { 'required': isrequired }" class="answer-single">
<option value="">Choose
<!-- ko foreach: formquestionoptions -->
<option data-bind="value:text, text:text">
<!-- /ko -->
</select>
我应该如何告诉HTML Agility包...不这样做?这是当前的代码
item.Helpers.ForEach(packet =>
{
string contents = FileWriter.getFileContents(mapPath(packet.FileName));
doc.GetElementbyId(packet.DomId).InnerHtml = Environment.NewLine + contents + Environment.NewLine;
});
答案 0 :(得分:1)
默认情况下,HAP专门处理选项标签...所以要关闭此行为,这里是您需要的代码
HtmlDocument doc = new HtmlDocument();
HtmlNode.ElementsFlags.Remove("option");
原始答案here