ASP.NET MVC: Ускоритель поиска для IE с подсказками

В качестве вступления

На сайте http://www.iegallery.com в разделе надстройки существует огромного количество.

90-0

Можно написать свой ускоритель и добавить в список. В этой статье будем делать ускоритель поиска.

Опять MvcTools

Буду снова использовать MvcTools (можно установить через nuget менеджер). В сборке существует SuggestResult и еще один важный интерфейс ISuggestable. Итак, я хочу, чтобы поиск и подсказка через строку браузера осуществлялся по музею юмора. Для этого сначала создаю новый класс ExhibitSuggest:


   1:  publicclass ExhibitSuggest : ISuggestable {

   2:  private Exhibit _model;

   3:  

   4:  public ExhibitSuggest(Exhibit model) {

   5:  this._model = model;

   6:      }

   7:  

   8:  publicstring Title {

   9:          get { return _model.Title; }

  10:      }

  11:  

  12:  publicstring Description {

  13:          get {

  14:  if (_model.Hall != null) {

  15:  return _model.Hall.Name;

  16:              }

  17:  returnstring.Empty;

  18:          }

  19:      }

  20:  

  21:  publicstring Url {

  22:          get {

  23:  returnstring.Format("http://www.calabonga.com/museum/show/", 

  24:                         _model.Id.ToString());

  25:          }

  26:      }

  27:  

  28:  }

Обратите внимание на то, что этот класс реализует интерфейс озвуяенный выше.

Метод поиска

Создаем в контролере Site новый метод, который будет искать данные и возвращать SuggestResult:


   1:  public ActionResult Suggest(string text) {

   2:      var items = exhibitRepository.AllIncluding(x => x.Hall)

   3:          .Where(x=>x.Title.StartsWith(text)).ToList();

   4:      List<ExhibitSuggest> result = null;

   5:  if (items.Any()) {

   6:          result = new List<ExhibitSuggest>();

   7:          items.ForEach(x=>result.Add(new ExhibitSuggest(x)));

   8:      }

   9:  returnnew SuggestResult(result, text);

  10:  }

Программирование закончено, осталось сделать соответствующую html-разметку.

Только для IE

Раз мой сайт поддерживает поиск с подсказками, мне надо об этом “сообщить” браузеру. Чтобы IE мог уведомить посетителя сайта, а также мог предложить установить этот самый ускоритель поиска.

Для этого нужно в заголовке странице в теге <head> установить следующий параметр:


   1:  <linktitle="Музей юмора"rel="search"

   2:  type="application/opensearchdescription+xml"

   3:  href="http://www.calabonga.com/extensions/search.xml"/>

Третья строка указывает на специальный файл с настройками для браузера IE, которые ему пригодаятся, чтобы реализовать поиск по вашему сайту. Вот содержимое этого файла:


   1:  <?xmlversion="1.0"encoding="UTF-8"?>

   2:  <OpenSearchDescriptionxmlns="http://a9.com/-/spec/opensearch/1.1/">

   3:  <ShortName>Музей юмора</ShortName>

   4:  <Imageheight="16"width="16"

   5:  type="image/icon">http://www.calabonga.com/favicon.ico</Image>

   6:  <Urltype="text/html"

   7:  template="http://www.calabonga.com/site/suggest?text={searchTerms}"/>

   8:  <Urltype="application/x-suggestions+xml"

   9:  template="http://www.calabonga.com/site/suggest?text={searchTerms}"/>

  10:  </OpenSearchDescription>

В строках 5, 7 и 9 поставьте свои параметры. QueryString – параметр может быть любой, а вот название в фигурных скобках фиксировано спецификацией IE.

Установка ускорителя IE

Теперь на странице музея юмора надо сделать кнопку, которая сможет установить этот ускоритель поиска в браузер посетителя, если он пожелает.

90-2

Помините, что для других браузеров такой функции пока не существует, а значить показывать эту кнопку пользователю другого браузера, по меньшей мере не этично. Поэтому сделаю так:


   1:  <!--[if gte IE 7]>

   2:  <p>

   3:      <a href="#" class="backblue rounded" 

   4:          title="Добавляет провайдера поиска для IE7 и выше. 

   5:              Позволит быстро осуществлять поиск в музее юмора из панели поиска IE" 

   6:          onclick="window.external.AddSearchProvider('http://www.calabonga.com/extensions/search.xml');

   7:              return false;">

   8:      <span>Добавить поиск в IE</span>

   9:      </a>

  10:  </p>   

  11:  <![endif]—>

90-1

Набираем что-нибудь в поиске и видим:

90-3

Вот и всё.

 

Подробнее: http://feedproxy.google.com/~r/blogmusor/~3/5cyNR3gWlq8/90

Читать комменты и комментировать

Добавить комментарий / отзыв



Защитный код
Обновить

ASP.NET MVC: Ускоритель поиска для IE с подсказками | | 2012-09-13 08:38:48 | | Программирование | | В качестве вступления На сайте http://www.iegallery.com в разделе надстройки существует огромного количество. Можно написать свой ускоритель и добавить в список. В этой статье будем делать ускоритель | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: