2010-06-19 104 views
0

我正在玩Raven DB和MVC 2. 默認情況下,Raven中的身份證件將是例如。對於一個名爲Suggestion的實體,「建議/ 1234」。身份證帶/導致路由問題

這會導致路由問題,當我寫這樣的:

<%: Url.Action("Delete", "Suggestion", new { id = suggestion.Id }) %> 

將URL /建議/刪除/建議/ 14337,將無法正常工作。

這可以在路由中解決,或者我是否必須更改Raven中id的格式?我該怎麼做?

回答

3

將您的路線從{controller}/{action}/{id}更改爲{controller}/{action}/{*id}。這被稱爲「全通」路線;更多詳情on MSDN

或者,您可以將id作爲查詢參數。

+0

好主意,但只適用於最後一個參數 – 2010-06-19 15:04:40

0

默認情況下,您將無法編碼正斜槓。

更改ID,suggestions_1234或嘗試使用此設置:

<uri> 
    <schemeSettings> 
     <add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes" /> 
    </schemeSettings> 
</uri> 

我沒有檢查是否配置設置工作呢。我現在不能這樣做,因爲足球在5分鐘內開始。

URL-encoded slash in URL