Asp.net mvc 不带查询字符串的重定向操作MVC

Asp.net mvc 不带查询字符串的重定向操作MVC,asp.net-mvc,Asp.net Mvc,我的mvc应用程序中有一些代码执行重定向 return RedirectToAction("Details", new { slug = viewModel.Farm.Slug }); 这将重定向到url /Farm/Details?slug=the-farm-name 我想让它这样做 /Farm/Details/the-farm-name 有一种简单的方法可以做到这一点吗?在global.asax中的Routes表中定义与上述内容匹配的路由。您使用的是默认路由,其中定义了一个参数“id”

我的mvc应用程序中有一些代码执行重定向

return RedirectToAction("Details", new { slug = viewModel.Farm.Slug });
这将重定向到url

/Farm/Details?slug=the-farm-name
我想让它这样做

/Farm/Details/the-farm-name

有一种简单的方法可以做到这一点吗?

在global.asax中的Routes表中定义与上述内容匹配的路由。

您使用的是默认路由,其中定义了一个参数“id”。 更改代码以返回

重定向到操作(“详细信息”,新的{id=viewModel.Farm.Slug})


或者增加新的路线。

我想应该是这样的。。。整个路由过程需要一点时间来适应。@James:帮助我的是记住路由是双向的:你可以提供一个URL,它返回参数,你可以给它们参数,它生成一个URL。如果没有可以生成URL的路由,那么它将返回到查询字符串黑客。