簡體   English   中英

將所有 URL 路由到 Home 控制器操作 C# MVC

[英]Route all URL's to Home controller action C# MVC

我想在 c# 中創建一個 URL 重定向器,所以每當我的 MVC 應用程序基 url 被參數命中時,我想根據 url 中的參數(站點、文件夾、文件、id 等)將其重定向到其他 url,例如: http://localhost:8080/site/folder/file/id 或 http://localhost:8080/site/folder/file 或 http://localhost:8080/site/folder 等,所以請求 url 可以是任何類型,只有基本 url 將被修復。

我嘗試將默認路由更新為

routes.MapRoute(
    name: "Default",
    url: "{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

我也嘗試創建一個自定義的新路線

routes.MapRoute(
    "DCTM",                                             // Route name
    "Da/{objectId}",                                    // URL with parameters
    new { controller = "Home", action = "Redirector" }  // Parameter defaults
);

但是上述兩種方法都給出了錯誤。 可以做些什么來實現這一目標?

我有解決辦法!!! 將 Web 應用程序的任何傳入 url 重定向到任何其他 Web 應用程序,如下所示

  • 將 RouteConfig.cs 更新為
 public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

            routes.MapRoute(
                 name: "Dctm",
                 url: "{*nodeAliasPath}",
                 defaults: new { controller = "Home", action = "Redirector", id = UrlParameter.Optional }
             );
        }
  • 現在添加目標 url 並將源的 url 添加到 HomeController.cs 中作為
 public ActionResult Redirector()
        {
            string destinationURL = "Destination base url" + Request.RawUrl; // combine the destination base url and source url parameters. 
            return Redirect(destinationURL);
        }

輸出:

  • 源碼地址:https://localhost:44306/Abc/Xyz/632-sn232-erh4
  • 重定向網址:https://localhost:44396/Abc/Xyz/632-sn232-erh4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM