2013-08-05 112 views
1

我想在我的應用程序中顯示Facebook驗證後的看法,但我得到了JSON響應代替HTML視圖,根據the documentation視圖分辨率如下:Servicestack剃刀降價瀏覽分辨率

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

  1. 如果Web Service指定的模板(通過定製IHttpResult TEMPLATENAME響應) - 然後用該名稱查看。
  2. 具有相同名稱作爲響應DTO的視圖,第一尋找在/瀏覽次數然後在/查看/共享
  3. 具有相同的名稱作爲請求DTO的視圖,第一尋找在/瀏覽次數然後在/瀏覽次數/共享

這些是我的DTO

public class FacebookRequest{} 
public class FacebookResponse{} 

這是我的路由配置

Routes.Add<FacebookRequest>("/User/facebook"); 

我認爲有folloing代碼:

@inherits ViewPage<MyProject.Services.Dto.FacebookResponse> 

this is a facebook response 

服務方法:

[ClientCanSwapTemplates] 
    public FacebookResponse Get(FacebookRequest userRequest) 
    { 
     return new FacebookResponse(); 
    } 

據我瞭解,如果我有位於「意見」目錄它應該在同一responseDTO視圖將視圖與服務的響應連接起來。

+0

我不明白你的問題,但http://razor.servicestack.net/項目將幫助你理解觀點。請你能指出你被卡住的地方嗎? – kunjee

+0

您的視圖名稱是「FacebookResponse.cshtml」還是「FacebookResponse.md」?它位於你的/ Views或/ Views/Shared目錄中嗎?你的問題沒有明確說明。 –

+0

@kunjee嗨我得到了一個JSON響應,而不是一個HTML視圖 –

回答

1

添加作爲答案

SS評論使用了應答DTO類的確切名稱,並查找與該確切名稱上的文件系統視圖文件,除非你提供一個默認視圖屬性。所以,如果您的視圖(在您的示例中)完全不是Views/FacebookResponse.cshtml,它將無法正常工作。使用繼承viewpage語句不能幫助SS解析視圖。它正在尋找特定位置的確切文件名。我不是100% - 但我似乎記得它也是一個大小寫敏感的比賽。