MVC에서 어떻게 AJAX 양식에서 페이지 시간 초과를 올바르게 처리 할 수 있습니까? 현재 AJAX 양식을 제출할 때 AJAX 양식의 DOM은 로그인 페이지 콘텐츠로 대체됩니다. 전체 페이지를 로그인 페이지로 리디렉션하고 싶습니다.AJAX 양식 (Ajax.BeginForm)의 로그인 페이지로 어떻게 리디렉션합니까?
Ajax 양식 (AJAX.BeginForm) 내에 부분 양식이있는 ASP.Net MVC 응용 프로그램이 있습니다. 응용 프로그램이 Windows Form 인증을 사용 중입니다. 일반적으로 웹 사이트가 시간 종료되면 로그인 페이지로 올바르게 리디렉션됩니다. 그러나 AJAX 양식이 제출되고 웹 사이트 시간이 초과되면 MVC는 로그인 페이지를 AJAX 양식의 내용으로 반환합니다. 컨트롤러 동작 방법에는 절대로 도달하지 않습니다. 같은 결과 JQuery.load 시도했다.
컨트롤러
public ActionResult Index()
{
ViewData["Now"] = DateTime.Now.ToString("HH:mm:ss");
return View("Index");
}
public ActionResult AjaxTimeout()
{
ViewData["Now"] = DateTime.Now.ToString("HH:mm:ss");
return PartialView("AjaxTimeout");
}
Timeout.aspx
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
<html>
<head>
<script src="/Scripts/MicrosoftAjax.debug.js" type="text/javascript"></script>
<script src="/Scripts/MicrosoftMvcAjax.debug.js" type="text/javascript"></script>
</head>
<body>
Parent page:
<div id="ajaxtimeout" style="height:300px; width:300px;">
<%= Html.Partial("AjaxTimeout") %>
</div>
</body>
</html>
AjaxTimeout.ascx
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<% using (Ajax.BeginForm("AjaxTimeout", new AjaxOptions { UpdateTargetId = "ajaxtimeout"})) { %>
Return Time: <%= ViewData["Now"] %>
<input type="submit" value="Submit" />
<% } %>
나는 이것을 시도 할 것이지만 JQuery로 모든 것을 옮기는 것은 선택 사항이 아니다. 나는 JQ에서 조금 초록색입니다. $ .ajax (즉, 링크) 주위에 '래퍼'를 추가하는 방법을 가르쳐 주시겠습니까? 그리고 MVC/AJAX에서이 작업을 수행 한 사람이 있습니까? BeginForm? – davewilliams459
생각해 보니 AJAX.BeginForm onsuccess JS 함수가 이것을 처리 할 수 있는지 궁금하지만, 반환 상태가 401인지 여부를 알아야합니다. – davewilliams459
래퍼는 함수 또는 클래스 전체에서 사용할 수있는 클래스입니다. 문제의 메소드를 호출하는 app. 메소드로 /부터 나가는 데이터에 대해 설정 및 사전/사후 처리를 수행 할 수 있습니다. – womp