Я развиваюсь в проекте Winforms .NET 4.0, используя WebControl как редактор WYSIWYG, работая с YARTE editor, разработанным Мэттом Гроувсом.Winforms WebControl - Как предотвратить утечку ссылок?
Я пытаюсь добавить якорь тег и установить HREF атрибута к следующему пути:
var path = http://someurl.aspx?param1="val1"¶m2="val2"¶m3="youGetTheIdea"
Я пытался несколько подходов; Я всегда получаю HTML маскирование амперсандов когда я пытаюсь написать URL к документу:
http://someurl.aspx?param1="this"&param2="doesnt"&param3="work"
подходы, которые я попробовал Неудачно:
Создание Link
webBrowser.ExecCommand("CreateLink", false, path)
Создание HTML и вставка его в:
var htmlDocument2 = args.Document.DomDocument as IHTMLDocument2; if (htmlDocument2 == null) return; var range = htmlDocument2.selection.createRange() as IHTMLTxtRange; if (range == null) return; range.pasteHTML(string.Format(path, range.text));
Создание файла и направления WebBrowser к нему:
// assume the links are already inserted, but aren't right. var textWithBadLinks = webBrowser.DocumentText; var betterText = UseRegexToReplaceBadLinkText(textWithBadLinks); using (StreamWriter outfile =new StreamWriter(@"c:\test.html")) { outfile.Write(betterText); } webBrowser.Url= new Uri(@"c:\test.html");
Создание потока и направления WebBrowser к нему:
// same as above, but instead of the URL, use the DocumentStream: webBrowser.DocumentStream = new StreamWriter(@c:\test.html);
Переход к файлу:
webBrowser.Navigate(new Uri(@"c:\test.html"))
Независимо от подхода, который я выбираю, амперсанды получают экранированные ссылки, которые не работают.
Заранее благодарю за любую помощь.
Таким образом, проблема заключается в кодировании & &? С технической точки зрения, я считаю, что XHTML требует, чтобы amp был действительным. См .: http://stackoverflow.com/questions/275150/xhtml-and-ampersand-encoding –
@mgroves. Похоже, вы правы - можете ли вы опубликовать это как ответ, чтобы я мог принять его? –