gpt4 book ai didi

c# - 如何根据对照查找表检查的 url 调用 ASP.Net MVC?

转载 作者:太空宇宙 更新时间:2023-11-03 20:38:54 25 4
gpt4 key购买 nike

我在我独特的 ASP.Net MVC 项目中有一个独特的要求。基本上,我们正在将一个旧的基于 Linux 的网站迁移到 MVC,我们希望保留上一个网站上的 URL。

为网站的子目录(例如“www.mywebsite.com/pickes/cherry-pickle-recipe.html”)创建一个新的 Controller 是不切实际的。

所以我想做以下其中一项

  1. 为 URL 创建一个查找列表。应根据数据库检查 URL,如果找到 URL,则应从特定 Controller 返回特定操作。

  2. 捕获所有没有 Controller 的 url 请求并将它们发送到某个 Controller -> 操作。

我该怎么办?

最佳答案

好吧,我认为您可以通过实现 IRouteHandlerInterface 编写自定义路由处理程序来做到这一点

public class LookupRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
IRouteHandler handler = new MvcRouteHandler();
var vals = requestContext.RouteData.Values;
if(String.IsNullOrEmpty(vals["controller"])
{
// fetch action and controller from database
vals["controller"] = dbcontroller;
vals["action"] = dbaction;
}
return handler.GetHttpHandler(requestContext);
}
}

您还需要做一件事,即在 global.asax 中注册您的路由处理程序

routes.MapRoute(
"dbroute",
"{controller}/{action}/{id}",
new { id = "" }
).RouteHandler = new LookupRouteHandler();

关于c# - 如何根据对照查找表检查的 url 调用 ASP.Net MVC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3895922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com