Проблема в том, что я не смог найти хороший учебник о том, как реализовать 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>
}
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" - это все, что мне понадобилось, чтобы получить результаты, которые я хотел.