使用ASP.NET MVC 3的RavenDb - 如何使用ID生成URL?

RPM*_*984 11 asp.net-mvc ravendb asp.net-mvc-3

这可能是一个非常简单的答案,但我是RavenDb的新手,所以我显然错过了一些东西.

我有一个id的默认约定的基本对象:

public string Id { get; set; }
Run Code Online (Sandbox Code Playgroud)

当我将它保存到文档存储区时,我看到它的值如下:

文章/ 123

这很好,但是...我如何生成这样的URL:

www.mysite.com/edit/123

如果我这样做:

@Html.ActionLink("Edit", "Posts", new { id = @Model.Id })
Run Code Online (Sandbox Code Playgroud)

它将生成以下URL:

www.mysite.com/edit/posts/123

这不是我想要的.

当然我不需要做字符串操作?人们如何处理这个问题?

Aye*_*ien 16

RPM1984,有几种方法可以解决这个问题.

1)您可以修改路由以处理此问题:

routes.MapRoute(
    "Default",                                                // Route name
    "{controller}/{action}/{*id}",                            // URL with parameters
    new { controller = "Home", action = "Index", id = "" });  // Parameter defaults
Run Code Online (Sandbox Code Playgroud)

这将允许MVC接受带有斜杠的参数

2)您可以修改默认的ID生成策略:

 documentStore.Conventions.IdentityPartsSeparator = "-";
Run Code Online (Sandbox Code Playgroud)

这将生成ID:

帖子-1帖子-2等

另见:

http://weblogs.asp.net/shijuvarghese/archive/2010/06/04/how-to-work-ravendb-id-with-asp-net-mvc-routes.aspx