2017-02-09 59 views
2

我有一個爲期數年的ServiceStack項目,它既爲傳統Winforms應用程序提供服務,也爲新的html/css/javascript Web提供服務。我現在需要爲這些應用程序中的某些應用程序提供預格式化的視圖(特別是當我們添加Xamarin移動平臺時),並且看起來像Servicestack.Razor似乎是合乎邏輯的方式。在不改變現有功能的情況下將Razor添加到成熟的現有Servicestack項目中

我不確定將Razor添加到現有項目的最佳方式,而不是重新開始一個新項目。我可以自己添加必要的視圖文件夾,引用和web.config元素嗎?

此外,什麼是標準的URL約定仍然有服務可用(可從上述應用程序調用),但現在添加該服務的視圖?這是一條新路線嗎?

回答

2

您可以通過添加所需的config sections to your Web.config剃刀添加到現有ServiceStack Web應用程序:

<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,e.g後命名其添加爲您服務的看法:

/Views 
    RequestDto.cshtml 
    /Shared 
     _Layout.cshtml 

至於這對現有的服務視圖模式,@model將是您的服務響應DTO。

如果一切正確配置,從瀏覽器調用您的現有服務(或任何HTTP請求與Accept: text/html)將返回您的視圖的輸出,而不是ServiceStack的built-in auto HTML output

相關問題