我正在调用重定向网址的controller
。 Usercontroller.cs
有ClearSessionAnCoodkies
方法。
我已为此httpget
方法ClearSessionAndCookies()
添加了路由。
使用JQuery调用控制器方法来清除会话变量并重定向到主页。
由于某种原因,呼叫失败并且没有重定向到主页。
应用程序说找不到404页面。不确定呼叫失败的原因:(
The following is the controller, router, and asp.net call
----------
**UserController.cs**
[HttpGet]
public IHttpActionResult ClearSessionAndCookies()
{
HttpContext.Current.Session.Clear();
HttpContext.Current.Session.Abandon();
HttpContext.Current.Session.RemoveAll();
var host = Request.RequestUri.GetLeftPart(UriPartial.Authority);
return Redirect(host + "/cp");
}
**Routing**
RouteTable.Routes.MapHttpRoute(
name: "User",
routeTemplate: "api/User",
defaults: new { action = "ClearSessionAndCookies", controller = "User" }
);
**JavaScirpt**
function RedirectToWelcomePage() {
message = "Session expired. You will be redirected to home page.";
$('#sessionTimeoutTitle').text(message);
$('#sessionTimeoutModal').modal('show');
var url = 'api/User/ClearSessionAndCookies';
$.post(url, function (res) {
if (res.Success) {
sessionStorage.clear();
window.location.href = res.RedirectUrl;
}
}); }
答案 0 :(得分:0)
您的路线图表明,如果用户点击RunHiddenConsole.exe
,则会调用api/User
。如果您想要在网址中执行操作,则可能需要更新路由。
我强烈推荐路线属性,因为它们更清洁,准备就绪。 https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing
答案 1 :(得分:0)
问题在于您将该操作声明为Get,然后使用帖子调用此方法。
[HTTPGET] public IHttpActionResult ClearSessionAndCookies()
$ .post(url,function(res){
删除[HttpGet]属性,这将有效。