Реализация поисковой системы Google в ASP.NET MVC 5 - PullRequest
0 голосов
/ 29 мая 2019

Проблема в том, что я не смог найти хороший учебник о том, как реализовать Google Search Engine в ASP.NET MVC 5.

Я боролся с этим в течение нескольких часов, просматривая различные учебники о том, каквнедрить GSE в ASP.NET MVC 5. Не получая особой помощи от учебников, я решил найти ответ самостоятельно.Я надеюсь, что это поможет кому-то еще, кто столкнулся с той же проблемой.

Сначала создайте контроллер:

public class SearchController : Controller
{
  public ActionResult Search()
  {
    return View("Search");
  }
}

Во-вторых, создайте представление, которое содержит фрагмент кода GSE JavaScript:

@{
   Layout = "~/Views/Shared/_FullWidthLayout.cshtml";
   ViewBag.Title = "Search Results";
}

<div class="opensans">
  <h2>@ViewBag.Title</h2>
    <script>
      (function () {
    var cx = '[YourSearchEngineID]';
    var gcse = document.createElement('script');
    gcse.type = 'text/javascript';
    gcse.async = true;
    gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(gcse, s);
      })();
    </script>
    <gcse:searchresults-only defaulttorefinement="[RefinementParameter]">
    </gcse:searchresults-only>
</div>

Мой вид называется "Поиск", а (defaulttorefinement = "[RefinementParameter]") является необязательным.


Наконец, создайте форму:

@using (Html.BeginForm("Search", "Search", FormMethod.Get))
{
  <div class="input-group">
    <input type="search" name="q" class="form-control" placeholder="Search" />
    <span class="input-group-btn">
      <input class="btn btn-default btn-md" type="submit" value="Search" />
    </span>
  </div>
}

enter image description here

btn-md не является классом начальной загрузки, поэтому вы найдете CSS для класса ниже

.btn-md{
  padding: 4.5px 8px 5px !important;
  display: inline-block !important;
}

Я поместил свою форму в свой макет, чтобы она была на каждой странице.

Обратите внимание, что для поля ввода ввода name = "q".Это важно, потому что это термин, который ищет GSE.Вы не видите этого в их фрагменте JS, но они упоминают об этом в своей документации здесь: https://developers.google.com/custom-search/docs/tutorial/implementingsearchbox.

Имя = "q" - это все, что мне понадобилось, чтобы получить результаты, которые я хотел.

...