2017-02-09 17 views
2

У меня есть многолетний проект ServiceStack, который предоставляет услуги как для устаревших приложений Winforms, так и для новых веб-сайтов html/css/javascript. Теперь у меня есть необходимость обслуживать некоторые предварительно отформатированные представления для некоторых из этих приложений (особенно, поскольку мы добавляем мобильную платформу Xamarin), и это похоже на Servicestack.Razor будет логичным путем.Добавление Razor в зрелый, существующий проект Servicestack без изменения существующей функциональности

Я не уверен, что лучший способ добавить Razor в существующий проект, а не начать с нового проекта. Могу ли я добавить нужные папки, ссылки и элементы web.config?

Кроме того, что такое стандартное соглашение по URL-адресам для предоставления услуги (можно использовать эту функцию из вышеупомянутых приложений), но теперь добавление вида (ов) этой службы? Это новый маршрут?

ответ

2

Вы можете добавить бритву к существующей ServiceStack Web App путем добавления необходимого config sections to your Web.config:

<configuration> 
    <configSections> 
     <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false"/> 
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false"/> 
     </sectionGroup> 
    </configSections> 

    <appSettings> 
     <add key="webPages:Enabled" value="false" /> 
    </appSettings> 

    <system.web.webPages.razor> 
     <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <pages pageBaseType="ServiceStack.Razor.ViewPage"> 
      <namespaces> 
       <add namespace="System" /> 
       <add namespace="System.Linq" /> 
       <add namespace="ServiceStack" /> 
       <add namespace="ServiceStack.Html" /> 
       <add namespace="ServiceStack.Razor" /> 
       <add namespace="ServiceStack.Text" /> 
       <add namespace="ServiceStack.OrmLite" /> 
       <add namespace="ProjectNamespace" /> 
       <add namespace="ProjectNamespace.ServiceModel" /> 
      </namespaces> 
     </pages> 
    </system.web.webPages.razor> 
</configuration> 

Затем Установка пакета ServiceStack.Razor:

PM> Install-Package ServiceStack.Razor 

Какой будет настроить свой проект, чтобы включить ServiceStack's Razor support , Оттуда вы можете добавить представление для вашей службы, назвав его после запроса или ответа DTO, например:

/Views 
    RequestDto.cshtml 
    /Shared 
     _Layout.cshtml 

Как это вид модели для существующей службы, @model будет для служб реагирования DTO.

Если все настроено правильно, вызов существующей службы из браузера (или любой HTTP-запрос с Accept: text/html) вернет результат из вашего представления вместо службы ServiceStack.

 Смежные вопросы

  • Нет связанных вопросов^_^