asp.net mvc 网站路由实践

131 阅读1分钟

我们可以在网站链接上加一些前缀,让它看起来很不错。这些就可以通过路由配置来实现。看代码吧 路由配置都有顺序的,这个是重点哦。

    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
               name: "Test",
               url: "bbb/Test/Home/{action}/{id}",
               defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
               namespaces: new string[] { "MSLogistic.Controllers.Test" }
          );

         routes.MapRoute(
            name: "DateRoute",
            url: "{year}/{month}/{day}",
            defaults: new { controller = "Home", action = "Date" },
            namespaces: new string[] { "MSLogistic.Controllers.Test" },
            constraints: new { year = @"\d{4}", month = @"\d{2}", day = @"\d{2}" }
        );

  //          routes.MapRoute(
  //     name: "Test",
  //     url: "bbb/Test/{controller}/{action}/{id}",
  //     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
  //     namespaces: new string[] { "MSLogistic.Controllers.Test" }
  //);
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                namespaces: new string[] { "MSLogistic.Controllers" }
            );
            //路由有先后顺序 https://blog.csdn.net/qq_35574190/article/details/88940589
      
            //routes.MapRoute("ATest", "ATest{controller}/{action}", new { controller = "Home", action = "Index" });
            //routes.MapRoute("Test", "BBB/{controller}/{action}", new { controller = "Home", action = "Index" });
            //https://blog.csdn.net/FrancisLaw/article/details/7429317
            //https://leftfist.blog.csdn.net/article/details/79228940

    
        }
    }

路由参数获取

 public class HomeController : BaseController
    {
        // GET: Home
        public ActionResult Index2()
        {

            ViewBag.DTest = this.Session["CurrUserInfo"];
            return View("~/Views/Test/ATest/Index.cshtml");//原来要具体名称
             //  return View();//对应控制器目录下的视图Index2
        }

        public ActionResult Date()
        {
            //http://localhost:20721/2023/05/20
            //string data = Request.QueryString["year"];
            var data = RouteData.Values;//获取路由参数

            ViewBag.year = RouteData.Values["year"];
            ViewBag.month = RouteData.Values["month"];
            ViewBag.day = RouteData.Values["day"];
            ViewBag.controller = RouteData.Values["controller"];
            ViewBag.action = RouteData.Values["action"];
            //https://www.cnblogs.com/luckyting/articles/14849977.html
            //https://www.jb51.net/article/241327.htm
            //https://www.cnblogs.com/landeanfen/p/6016394.html
               
            return View("~/Views/Test/Home/Index.cshtml");//原来要具体名称
            // return View("news");//对应控制器名目录下视图,
            //  return View();//对应控制器目录下的视图Date
        }
    }

在重定向里加前缀

   switch (result)
                {
                    case SignInStatus.Success:
                        return Redirect("~/Account/KKTest");//可以添加前缀名称
                    // return RedirectToLocal(returnUrl);
                    case SignInStatus.LockedOut:
                        return View("Lockout");
                    case SignInStatus.RequiresVerification:
                        return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
                    case SignInStatus.Failure:
                    default:
                        ModelState.AddModelError("", "无效的登录尝试。");
                        return View(model);
                }
        public ActionResult KKTest()
        {
            Session["LoginUserType"] = "测试1235555";
            var ddd = Session["CurrUserInfo"];
            return Redirect("/bbb/Test/Home/Index2"); //可以添加前缀名称
        }

效果图

image.png 这个就是加了前缀 bbb/Test/

image.png

参考:blog.csdn.net/xiaouncle/a…

www.cnblogs.com/wangiqngpei…

www.cnblogs.com/landeanfen/… www.cnblogs.com/libingql/p/…

blog.csdn.net/aiouwen521/…

aspnet_regsql.exe  -ssadd -sstype c -d test -S 192.168.1.16 -U sa -P 123456

blog.csdn.net/w630131/art…