mvc跳转问题

正常地址是http://xxxx/OA/pms/ 但是之前有部分用户保存的是 http://xxxx/oa/pms/ 小写 或者不小心输入小写。 希望能自动跳转到http://xxxx/OA/pms/ 页面  请问怎么解决呢? 目前这个是跳转的控制器 没测试 感觉有问题。 OA/pms/是iis发布设置的虚拟目录。   namespace pms.AOP { public class LoginCheckAttribute : Controller { protected override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext.RouteData.Values["controller"].ToString().IndexOf("Login", StringComparison.Ordinal) >= 0) { //oa/pms/跳转 if (filterContext.HttpContext.Request.Url != null && filterContext.HttpContext.Request.Url.ToString().IndexOf("oa/pms", StringComparison.Ordinal)>=0) { filterContext.Result = RedirectToRoute(new { Controller = "Login", Action = "Index" }); } return; } var token = ""; var httpContext = System.Web.HttpContext.Current; if (httpContext.Request.Cookies["token"] != null) token = httpContext.Request.Cookies["token"].Value; if (token == "") { var httpCookie = httpContext.Request.Cookies["Redis_SessionId"]; if (httpCookie != null) token = "Session_" + httpCookie.Value;//第3方登入 } var flag = RedisBase.Hash_Exist(token, "userName"); if (flag) return; filterContext.Result = RedirectToRoute(new { Controller = "Login", Action = "Index", flag = "expired" }); base.OnActionExecuting(filterContext); } } }
牧羊人nacy
浏览 535回答 4
4回答

料青山看我应如是

首先,IIS发布默认是不区分大小写的。另外,作为虚拟目录,浏览器会当成两个来存储localStorage么(还真没注意过这个问题)? 就问题本身来说,在页面index.html上,写个js,发现是小写的oa,就重新设定一个新的跳转地址。(该方式也可以在后端通过Navigate来做)。  

千万里不及你

你找找有没有类似“MVCURL忽略大小写”这样的结果吧。

摇曳的蔷薇

其实大小写结果一样 只是我页面保存了cookie  和 localstorage 登入成功后变成http://xxxx/OA/pms/ 之前写入的都在 http://xxxx/oa/pms/这里域里面 所以会出现一个异常问题 提示未登入。

撒科打诨

@s_p: 是你的cookie设置问题?你的cookie设置的path是什么?
打开App,查看更多内容
随时随地看视频慕课网APP