C# WebBrowser HTML со ссылками на сценарии и изображения

Существуют различные варианты достижения того же. Вы можете воспользоваться помощью Jquery следующим образом:

<a href='@url.action("LOGOUT","logout")?someParameter=$('#searchField').val()' >Text for Link Name</a>

На уровне контроллера вы должны добавить строковый параметр в метод выхода из системы. Например:

Public ActionResult Logout(string someParameter)
{
  //your code
}

Использование AJAX

Ниже приведен фрагмент кода с использованием вызова ajax

<div class="row">
    <table style="width:100%;">
        <tr>
            <td style="text-align:center;font-weight:bold;width:95%;">My header</td>
            <td>
                <select>
                    <option value="Choose">Select</option>
                    <option value="val1">val1</option>
                    <option value="val2">val2</option>
                    <option value="val3">val3</option>
                </select>
            </td>

            <td>
                <input type="text" id="searchField" name="searchFieldText"/>
            </td>
            <td>
                <input type="submit" style="color:black;background-color:rgb(216, 214, 208)" value="Search" onclick="submitClick()" />
            </td>
            <td style="text-align:right;width:10%;">@Html.ActionLink("LOGOUT", "logout")</td>
        </tr>
    </table>
</div>

<script>
   function submitClick()
    {
        $.ajax({
            url: "../MyController/ExecuteSearch?someParameter=" + $('#searchField').val(),
            type: "GET",
            success: function (data) {
                debugger;
              // your custom code
            }
        });
    }
</script>

Надеюсь, это поможет!

6
задан Community 23 May 2017 в 12:17
поделиться

2 ответа

Я вижу три способа получить это движение:

1: запишите файлы, в которых Вы нуждаетесь к плоским файлам во временной области, перемещаетесь WebBrowser в файл HTML, и удаляют их, после того как страница загрузилась

2: как Вы говорите, встроенный веб-сервер - herhaps HttpListener - но обратите внимание, что это использует HTTP.SYS и так требует администраторских полномочий (или необходимо предварительно открыть порт),

3: как 1, но использующий сервер именованного канала, чтобы не писать файл

Я должен сказать, первое намного более просто и требует нулевой конфигурации.

1
ответ дан 17 December 2019 в 22:15
поделиться
/// Hi try this may help u.
private string CheckImages(ExtendedWebBrowser browser)
{
      StringBuilder builderHTML = new StringBuilder(browser.Document.Body.Parent.OuterHtml);
      ProcessURLS(browser, builderHTML, "img", "src");                
      ProcessURLS(browser, builderHTML, "link", "href");
      // ext...

      return builderHTML.ToString();

}

private static void ProcessURLS(ExtendedWebBrowser browser, StringBuilder builderHTML, string strLink, string strHref)
{
     for (int k = 0; k < browser.Document.Body.Parent.GetElementsByTagName(strLink).Count; k++)
     {
          string strURL = browser.Document.Body.Parent.GetElementsByTagName(strLink)[k].GetAttribute(strHref);
          string strOuterHTML = browser.Document.Body.Parent.GetElementsByTagName(strLink)[k].OuterHtml;
          string[] strlist = strOuterHTML.Split(new string[] { " " }, StringSplitOptions.None);
          StringBuilder builder = new StringBuilder();
          for (int p = 0; p < strlist.Length; p++)
          {
              if (strlist[p].StartsWith(strHref))                        
                  builder.Append (strlist[p].Contains("http")? strlist[p] + " ":
                      (strURL.StartsWith("http") ?  strHref + "=" + strURL + " ":
                           strHref + "= " + "http://xyz.com" + strURL + " " ));                           
              else
                  builder.Append(strlist[p] + " ");
          }

          builderHTML.Replace(strOuterHTML, builder.ToString());
      }
}
0
ответ дан 17 December 2019 в 22:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: