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"]

时间: 2024-10-12 12:11:14

asp.net mvc url应用的相关文章

ASP.NET MVC URL重写与优化(初级篇)-使用Global路由表定制URL

ASP.NET MVC URL重写与优化(初级篇)-使用Global路由表定制URL 引言--- 在现今搜索引擎制霸天下的时代,我们不得不做一些东西来讨好爬虫,进而提示网站的排名来博得一个看得过去的流量. URL重写与优化就是搜索引擎优化的手段之一. 假如某手机网站(基于ASP.NET MVC)分类页面URL是这样的, http://www.xxx.com/category/showcategory?categoryid=1000&view=list&orderby=price&p

[ASP.NET MVC] URL网址路由包含&ldquo;/&rdquo;斜线

ASP.NET MVC 网址包含"/"斜线 笔者碰到一个状况是,URL带入的参数是可能有"/"斜线的(使用者输入)像是以下 1.运行正常 http://localhost:45405/Home/Product?name=HTC/M8/手机套 2.运行正常 http://localhost:45405/Home/Product?name='抗涨'白人牙膏_特大号 到目前为止都还没问题,但我们为了让URL好看以及优化SEO,我们会做URL Rewriting像是以下 1

ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL

http://www.cnblogs.com/John-Connor/archive/2012/05/03/2478821.html 引言-- 在初级篇中,我们介绍了如何利用基于ASP.NET MVC的Web程序中的Global文件来简单的重写路由.也介绍了它本身的局限性-依赖于路由信息中的键值对: 如果键值对中没有的值,我们无法将其利用凑出我们想要的URL表达式. 初级篇传送门:使用Global路由表定制URL   在进阶篇中,我们将介绍ASP.NET 路由相关类的基类-抽象类RouteBas

第2章 ASP.NET MVC(URL、路由及区域)

ASPNET MVC ASP.NET MVC简介 一.      简介 二.      MVC概念 三.      Asp.NET MVC 原理 四.      与ASP.NETWeb From比较 五.      安装必要软件 六.      第一个MVC应用程序 控制器向视图传递数据的方法 1.         ViewData[Key]=value 只能在当前视图中使用 2.         ViewBag.名称=value  只能在当前视图使用 3.         TempData[k

ASP.NET MVC——URL路由

在MVC之前,ASP.NET假设请求的URL与服务器上的文件之间有关联,服务器接受请求,并输出相应的文件.而在引入MVC后,请求是由控制器的动作方法来处理的.为了处理URL,便引入了路由系统. 首先我们来创建一个基础项目用来演示.代码如下: 1 public class HomeController : Controller 2 { 3 public ActionResult Index() 4 { 5 ViewBag.Controller = "Home"; 6 ViewBag.Ac

ASP.NET MVC 入门3、Routing

原帖地址:http://www.cnblogs.com/QLeelulu/archive/2008/10/03/1303612.html 在一个route中,通过在大括号中放一个占位符来定义( { and } ).当解析URL的时候,符号"/"和"."被作为一个定义符来解析,而定义符之间的值则匹配到占位符中.route定义中不在大括号中的信息则作为常量值. 下面是一些示例URL: Valid route definitions Examples of matchin

【转】ASP.NET MVC 的最佳实践

[这个职位基于创作的本 · 格罗弗 (在 Microsoft 高级开发人员) 的文档. 它是我们打算将此信息集成到 MSDN 上的 MVC 3 文档. 我们希望你的来信和欢迎您可能提出的任何建议.] 本文档提供了一套旨在帮助创建坚实的应用程序的 ASP.NET MVC 开发人员的编码准则. 当然,它是您作为决定,这些准则是适合您的应用程序开发人员. 模型的建议 该模型是用于定义特定于域的对象. 这些定义应包括业务逻辑 (如何对象的行为和涉及). (什么是有效的值为给定的对象) 的验证逻辑. (如

ASP.NET MVC 的最佳实践

[这个职位基于创作的本 · 格罗弗 (在 Microsoft 高级开发人员) 的文档. 它是我们打算将此信息集成到 MSDN 上的 MVC 3 文档. 我们希望你的来信和欢迎您可能提出的任何建议.] 本文档提供了一套旨在帮助创建坚实的应用程序的 ASP.NET MVC 开发人员的编码准则. 当然,它是您作为决定,这些准则是适合您的应用程序开发人员. 模型的建议 该模型是用于定义特定于域的对象. 这些定义应包括业务逻辑 (如何对象的行为和涉及). (什么是有效的值为给定的对象) 的验证逻辑. (如

ASP.NET MVC : Action过滤器(Filtering)

http://www.cnblogs.com/QLeelulu/archive/2008/03/21/1117092.html ASP.NET MVC : Action过滤器(Filtering) 相关文章: ASP.NET MVC URL Routing 学习 AP.NET MVC : 控制器 和 控制器Actions ASP.NET MVC 学习: 视图 有时候你想在调用action方法之前或者action方法之后处理一些逻辑,为了支持这个,ASP.NET MVC允许你创建action过滤器