2017-01-31 4 views
0

Я хочу вызвать метод действия LogOut, чей вид i не был создан как время сеанса.Вызов метода действия при завершении сеанса

Я написал сценарий для сеанса, но я не знаю, как вызвать метод действия, потому что все методы, которые у меня есть, как window.location и т. Д., Отображают представление.

<script> 
      //session end 

     var sessionTimeoutWarning = @Session.Timeout; 

     var sTimeout = parseInt(sessionTimeoutWarning) * 60 * 1000-55000; 
     setTimeout('SessionEnd()', sTimeout); 

    /* Here I want To call that AgentLogOut Method*/ 

     function SessionEnd() { 
      alert("Session Is Going To End in 1 min Please Login Again1"); 

      window.location = "/Agent/AgentLogIn"; 
     } 
</script> 

И это контроллер Action Target, к которому я хочу назвать

public ActionResult AgentLogOut() 
     { 
      string SessionId = Session["LogInSession"].ToString(); 
      string OType = "LogOut"; 
      ProcedureName = "SP_Crud"; 
      XElement xl = new XElement("data", 
       new XAttribute("otype", OType), 
       new XElement("sessionId", SessionId), 
       new XElement("agentIp", AgentIp) 
       ); 
      objDal.ExecuteNonQuery(ProcedureName, CommandType.StoredProcedure, new MySqlParameter("@xml", xl.ToString())); 
      Session.Clear(); 
      Session.Abandon(); 

      return RedirectToAction("AgentLogIn","Agent"); 
     } 

Я перепробовал все способы, которые я knew.Suggest мне, как попасть только метод действия.

+0

вы используете ваш контроллер и просмотр в том же проекте? –

+0

С какими проблемами вы сталкиваетесь? – Ankita

+0

также предоставляют некоторую информацию о функции 'SessionEnd()'. это будет работать правильно? –

ответ

2

, то вы можете сделать запрос AJAX, как:

function SessionEnd() 
{ 
    $.ajax({ 
    type: "post", 
    url: "/Agent/AgentLogIn", 
    data:{data:value}, 
    success:function(response){ 
    //do some stuff like login page redirection 
    }, 
    error:function(){ 
    //do some stuff like login page redirection 
    } 
    }); 
} 
+0

Я пробовал это, но это визуализирует LogOut View, но я не создал View для logOut. – Dashanan

+0

вы можете создать пустой вид, так как ваша фреймворк требует –

+0

Да, что будет работать, но также увеличивает время отклика. – Dashanan

1
var sessionTimeoutWarning = @Session.Timeout; 

    var sTimeout = parseInt(sessionTimeoutWarning) * 60 * 1000-55000; 
    setTimeout(function SessionEnd() { 
     alert("Session Is Going To End in 1 min Please Login Again1"); 
     window.location = "/Agent/AgentLogIn"; 
    }, sTimeout); 

ИЛИ

var sessionTimeoutWarning = @Session.Timeout; 

    var sTimeout = parseInt(sessionTimeoutWarning) * 60 * 1000-55000; 
    setTimeout(SessionEnd, sTimeout); 



    function SessionEnd() { 
     alert("Session Is Going To End in 1 min Please Login Again1"); 
     window.location = "/Agent/AgentLogIn"; 
    } 

примечание убедитесь: вы установили Session.Timeout с целочисленным значением

+0

Скрипт Порция работает хорошо. Скажите, как вызвать метод действия. – Dashanan

+0

Вы пробовали window.location = "/ Agent/AgentLogIn"; вы должны попробовать добавить базовый url вашего проекта –

+0

Да, я попытался, но это также должно иметь представление atleast, но я не хочу создавать представление для этого, я просто хочу вызвать этот метод действий и вставить эти данные в базу данных. – Dashanan

Смежные вопросы