控制器中的"Re-routing" URL 请求



我有一个MVC Web应用程序,它提供了各种文章。 视图的网址始终相同(并且需要相同(:

[...]/ArticleView/ArticleView?id=[some guid]

通过提供越来越多的不同文章,我需要创建更具体的视图,这些视图也需要不同的控制器操作来准备它们。 我想创建一个接口,根据 url 的 guid 键的某些操作"调度"这些控制器操作。

我不想在ArticleView Controller本身使用接口,而是以某种方式重新路由请求[...]/ArticleView/ArticleView?id=[some guid]然后使用此接口的另一个操作。

例: 浏览器请求[...]/ArticleView/ArticleView?id=[some guid]->内部路由到重定向到ActionResolveView

`[...]/SuperSpecialArticleView/ArticleView?id=[some guid]`

有没有可能这样做?

在 ArticleView 操作中,您可以使用某种服务,该服务将决定重新路由到另一个控制器操作并返回正确的视图。

您还可以 ASP.NET 平台中更改默认路由: 您需要实现自己的类继承自 RouteBase 类。您需要实现以下方法:

public override RouteData GetRouteData(HttpContextBase context)
... 

此方法匹配传入请求。

public override VirtualPathData getVirtualPath(RequestContext rcontext)
....

此方法匹配传出请求。

最后,您可以使用自己的基于RouteBase的类注册路由。

http://www.dotnetcurry.com/aspnet-mvc/970/aspnet-mvc-custom-routes

最新更新