ASP.NET MVC: Установка SAPE кода на сайте

Могу предположить, что вы уже попытались самостоятельно установить SAPE-код на своем сайте и, наверняка, уже попытались найти найти информацию на основном форуме этой системы. У меня не получилось найти чего-то более и менее разумного. Пришлось обращаться к автору сборки, который любезно подсказал, что надо делать всё “вручную”.

Настройка конфигурации (web.config)

Для начала в секцию “configSections” добавляем настройку sape-библиотеки (см. строки с 8 по 13):


   1:  <configuration>

   2:  <configSections>

   3:  <sectionname="entityFramework"

   4:  type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection,

   5:                          EntityFramework, Version=4.3.1.0, Culture=neutral, 

   6:                          PublicKeyToken=b77a5c561934e089" />

   7:  

   8:  <sectionGroupname="effetto.Sape">

   9:  <sectionname="SapeConfig"type="effetto.Sape.SapeConfigSection, SAPE"

  10:  allowLocation="true"

  11:  requirePermission="false"

  12:  allowDefinition="Everywhere"/>

  13:  </sectionGroup>

  14:  

  15:  </configSections>

  16:  

  17:  <!-- много другого полезного кода настроек -->

  18:  

  19:  </configuration>

После этого перед секцией “system.web” (хотя можно и после нее, главное чтобы в эту ветку конфигурации) помещаем код:


   1:  <effetto.Sape>

   2:  <SapeConfigUserId="[ваш код пользователя]">

   3:  <DefaultDocuments>

   4:  <addName="/site/index"/>

   5:  </DefaultDocuments>

   6:  </SapeConfig>

   7:  </effetto.Sape>

Хотя в принципе, можно этот код не размещать, так если только на случай открыть конфигурации и вспомнить какой у вас код. Я в конечной реализации удалил второй код, и всё равно всё заработало.

Создаем свой ActionResult для SAPE

Чтобы реализовать рендеринг SAPE-ссылок на ASP.NET MVC надо создать свой собственный результат обработки запроса (ActionResult). Я назвал свой класс SapeLinksResult. Для начала добавил необходимые пространства имен:


   1:  using System.Web.Mvc;

   2:  using effetto.Sape;

Далее сам код класса SapeLinksResult. Я покажу весь код целиком, чтобы проще было копировать:


   1:  publicclass SapeLinksResult : ActionResult

   2:  {

   3:  private SapeUrl url;

   4:  private SapePage page;

   5:  private SapeHost host;

   6:  

   7:  publicstring UserId { get; private set; }

   8:  

   9:  publicstring HostName { get; private set; }

  10:  

  11:  public SapeLinksResult(string userId, string hostname)

  12:      {

  13:  if (String.IsNullOrEmpty(userId)) 

  14:  thrownew ArgumentNullException("userId");

  15:  if (String.IsNullOrEmpty(hostname)) 

  16:  thrownew ArgumentNullException("hostname");

  17:  this.UserId = userId;

  18:  this.HostName = hostname;

  19:  

  20:          url = new SapeUrl();

  21:  

  22:          SapeUser user = SapeFactory.Factory.GetUser(this.UserId);

  23:          host = user.GetHost(hostname);

  24:          page = host.GetPage(url);

  25:      }

  26:  

  27:  publicoverridevoid ExecuteResult(ControllerContext context)

  28:      {

  29:          HttpResponseBase response = context.HttpContext.Response;

  30:          HttpRequestBase request = context.HttpContext.Request;

  31:          List<SapeLink> links = null;

  32:  if (page != null)

  33:          {

  34:              links = page.GetLinks();

  35:  

  36:  if (links != null)

  37:              {

  38:  foreach (SapeLink link in links)

  39:                  {

  40:                      response.Write(link.RawLink + host.Delimiter);

  41:                  }

  42:              }

  43:          }

  44:      }

  45:  }

 

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

Чтобы использовать данный класс перейдем в контроллер (мой называется Home) и добавим новый метод SapeCode. Сам метод прост до безобразия, обратите внимание на атрибут над методом – это важно.


   1:  [ChildActionOnly]

   2:  public ActionResult SapeCode()

   3:  {

   4:  returnnew SapeLinksResult("ваш_идентификационный_номер_SAPE", "вашсайт.ру");

   5:  }

Не забудьте указать свой идентификационный номер в системе SAPE и доменное имя вашего сайта. На основании этих данных и будут загружаться ссылки для страниц.

Теперь надо вызвать этот метод на тех страницах, где вы хотели бы разместить SAPE-ссылки. Также можно разместить в главном шаблоне сайта, и тогда код будет отрабатывать на всех страницах вашего сайта.


   1:  <p class="code">

   2:       @Html.Action("sapecode", "home")

   3:  </p>

Вот, собственно говоря и всё. Пробуйте, у меня получилось, чего и вам желаю.

Подробнее: http://feedproxy.google.com/~r/blogmusor/~3/ZdOOEXiweso/91

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

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



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

ASP.NET MVC: Установка SAPE кода на сайте | | 2012-09-13 08:35:56 | | Программирование | | Могу предположить, что вы уже попытались самостоятельно установить SAPE-код на своем сайте и, наверняка, уже попытались найти найти информацию на основном форуме этой системы. У меня не получилось | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: