asp.net mvc url应用

复制代码
//url加密与解密
string
res1 = HttpUtility.UrlEncode("7Z2K5Lgk/iI="); //值是7Z2K5Lgk%2fiI%3d string res2 = HttpUtility.UrlEncode(res1); //值是: 7Z2K5Lgk%252fiI%253d string res3 = HttpUtility.UrlDecode(res2); //值是7Z2K5Lgk%2fiI%3d string res4 = HttpUtility.UrlDecode(res3);

//值是7Z2K5Lgk/iI=
复制代码
复制代码
using GiftWeb.Dao;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.Mvc;

namespace GiftWeb.Controllers
{
    public class LoginController : Controller
    {
        //
        // GET: /Login/

        public ActionResult Index()
        {
            //1.当session自动过期
            string returnUrl = Request.RawUrl;

            string url = string.Empty;

            if (!Regex.IsMatch(returnUrl, @"^/Login/Index"))
            { 
                url = HttpUtility.UrlEncode(returnUrl);
            }
            //获取退出时的ulr地址
            url = Request["returnUrl"];
            ViewBag.returnUrl = url;

            return View();
        }


        [HttpPost]
        public ActionResult Index(string loginname, string password)
        {
            
            using (GiftDBEntities db = new GiftDBEntities())
            {
                var userinfo = db.SysUserInfo.Where(u => u.LoginName == loginname && u.Password == password).FirstOrDefault();
                if (userinfo == null)
                {
                    ViewBag.msg = "登录名或密码错误";
                    return View();
                }
                else
                {
                    //获取退出时的ulr地址
                    string url = Request["returnUrl"];
                    //对url解密
                    string result = HttpUtility.UrlDecode(url);
                    Session["sysuserInfo"] = userinfo;

                    if (string.IsNullOrEmpty(url))
                    {
                        return RedirectToAction("Index", "TopicInfo");
                    }
                    else
                    {
                        return RedirectPermanent(result);
                    }
                }
            }
        }

        public ActionResult Logout()
        {
            //获取当前的url
            string url = Request["returnUrl"];
            //将url加密
            string result = HttpUtility.UrlEncode(url);
            //让session过期
            Session.Abandon();
            //跳转到登录页面
            return Content(result);
        }

    }
}
复制代码
复制代码
 <script type="text/javascript">

        function logout()
        {
            var url = "@Request.RawUrl";
            alert(url);
            $.post("/Login/Logout?returnUrl="+url, function (data) {
                if (data != null)
                {
                    window.location = "/Login/Index?returnUrl=" + data;
                }
            });
        }
    </script>
复制代码

 

URL的获取很简单,ASP.NET通用:
【1】
获取 完整url

(协议名+域名+虚拟目录名+文件名+参数)

string url=Request.Url.ToString();

【2】获取 虚拟目录名+页面名+参数:

string url=Request.RawUrl;
(或 string
url=Request.Url.PathAndQuery;)

【3】获取
虚拟目录名+页面名:
string url=HttpContext.Current.Request.Url.AbsolutePath;
(或
string url= HttpContext.Current.Request.Path;)


【4】获取 域名:
string
url=HttpContext.Current.Request.Url.Host;


【5】获取 参数:
string url=
HttpContext.Current.Request.Url.Query;



【6】获取 端口:
Request.Url.Port


二、当前controller、action的获取
RouteData.Route.GetRouteData(this.HttpContext).Values["controller"]
RouteData.Route.GetRouteData(this.HttpContext).Values["action"]

RouteData.Values["controller"]
RouteData.Values["action"]

如果在视图中可以用
ViewContext.RouteData.Route.GetRouteData(this.Context).Values["controller"]
ViewContext.RouteData.Route.GetRouteData(this.Context).Values["action"]

ViewContext.RouteData.Values["controller"]
ViewContext.RouteData.Values["action"]

posted @   大空白纸  阅读(233)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示