2016-02-18 69 views
1

我在Visual Studio 2015中使用ServiceStack.Razor C#進行小型內部項目,並且正在從示例項目中工作(學習)。由於我的發展的一部分,我是主持人我所有的網站和虛擬目錄的API等,所以不是ServiceStack ToPostUrl()擴展方法忽略虛擬目錄

本地主機/你好

我有

本地主機/ SomeProject /你好

問題然而,一旦剃鬚刀從虛擬目錄/ SomeProject /發送,ToPostUrl()擴展方法創建絕對路徑,因此邏輯失敗:

<form action="@(new Hello().ToPostUrl())"> 

結果

<form action="/hello"> 

表單提交時它打破了重定向。處理這個問題的正確方法是什麼?虛擬目錄似乎不是特別不尋常的用例?

謝謝

回答

1

ServiceStack的反向路由只解析從ServiceStack的路由定義的路徑。

您需要將前綴包含在路由前安裝ServiceStack的任何自定義路徑/虛擬目錄中。

+0

我認爲這使得反向路由不如應有的那樣有用。從我的角度來看,在任何地方使用反向路由都應該保證您可以在不修改的情況下重命名服務(及其路由),包括自定義路徑(如「api」)。如果我理解正確,現在必須通過所有.cshtml文件,並在反向查找之前附加/ path /。 – specimen

+0

@specimen反向路由是客戶端庫功能,服務客戶端也使用它來生成適當的路由,它不具有對服務器AppHost的依賴關係,以瞭解您的服務器處理程序映射 – mythz