2010-06-19 102 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