2012-08-03 95 views
1

我有一個運行在http://example.com/api.ashx 我有一個響應過濾器的強制特定類型的dto內容到html,並將其templateName屬性設置爲「RulesView.md」。 但我得到發送給客戶端的servicestack默認json報表視圖,而不是我的標記。我有一個RulesView.md文件的視圖文件夾。如果這很重要,我正在使用3.7.9版本。有什麼我需要配置?爲什麼servicestack會返回默認的html視圖而不是我的markdown?

回答

0

如果返回默認的JSON報告比你的要求找到一個不匹配現有的降價頁:

注:TEMPLATENAME不應包含.md擴展,嘗試RulesView代替。

來源:http://www.servicestack.net/docs/markdown/markdown-features

分辨率順序ServiceStack的用途來解決相應的降價模板用於渲染的HTML輸出是:

  1. 如果Web Service指定的模板(通過定製IHttpResult。 TemplateName響應) - 然後是具有該名稱的視圖。

  2. 具有相同名稱作爲響應DTO的視圖,第一尋找在/瀏覽次數然後在/查看/共享

  3. 具有相同的名稱作爲請求DTO的視圖,第一尋找在/瀏覽次數然後在/ Views/Shared

+0

我responseDto是HttpResult。當我設置TemplateName屬性時,servicestack在views文件夾中查找?這在文檔中並不清楚。 – 2012-08-03 20:56:46

+0

它的意見/觀點和/ /查看/共享 – mythz 2012-08-03 21:02:03

+0

有沒有我可以啓用的日誌記錄可能會讓我對我的配置有所瞭解? – 2012-08-03 23:39:33

0

如果從您的處理程序返回HttpResult在寫入響應流時,servicestack不會使用帶有降格的TemplateName屬性。您必須將HttpResult.Response設置爲IHttpResult(不能使用HttpResult,因爲它還實現了將Response屬性寫入http響應流的IStreamWriter)。這意味着在返回HttpResult時,必須在Response屬性中爲類名命名標記頁。最後,它看起來像servicestack編譯一個視圖時,它不會包含有語法錯誤的文件。

在我來說,我有

@foreach p in products 
[email protected] 

地方,我需要

@foreach p in Model.products{ 
- @p.Name 
} 
相關問題