2011-08-06 4 views
1

버튼 클릭시 .ascx로 시작됩니다.RedirectToAction 리디렉션하지 않음

<script type="text/javascript"> 

function acceptG(id) { 
    jQuery.get('<%: Url.Action("Accept", "Gift") %>', { id: id }); 
} 

</script> 

그런 다음, 여기에 컨트롤러가되어있는 RedirectToAction은 여기서 여기

[Authorize] 
    public ActionResult Accept(long id) 
    { 
     var result = _gtService.AcceptG(id, User.UserID); 
     if (result.Success) 
      return RedirectToAction("Index", "Magnets"); 
     else 
     return View("InvalidG");    
    } 

public ActionResult Index() 
    { 
     ViewData["Count"] = _souvenirService.GetDataForUser(User.UserID).Count(); 
     return View(); 
    } 

한 가지 메뉴를 사용하여이 인덱스를 타격 할 때 기억해야 할 인덱스입니다 페이지가 성공적으로 나타나서 제대로 작동합니다. 하지만 RedirectToAction을 사용하면 모든 코드를 조회하지만 리디렉션하지는 않습니다. 어떤 도움을 주셔서 감사합니다.

답변

3

Jquery는 마법이 아닙니다., 그저 자바 스크립트 용 래퍼입니다. 서버에서 리디렉션을하면 브라우저 (아약스 요청)가 의미하는 바를 자동으로 이해한다는 의미는 아닙니다. 리디렉션하려는 브라우저에 알려야합니다. 귀하의 필요에 맞는 매우 작은 시스템을 만들었지 만 귀하의 응용 프로그램 요구 사항에 따라 복잡한 시스템을 만들 수 있습니다.

<script type="text/javascript"> 

function acceptG(id) { 
    jQuery.ajax({ 
      url:'<%: Url.Action("Accept", "Gift") %>', 
      data:{ id: id }, 
      success:function(data) 
      { 
       if(data=='Redirect') 
       { 
        window.location='<%: Url.Action("Index", "Magnets") %>'; 
       } 
       else 
       { 
        //do something else 
       } 
      } 
    }); 
} 

</script> 



[Authorize] 
    public ActionResult Accept(long id) 
    { 
     var result = _gtService.AcceptG(id, User.UserID); 
     if (result.Success) 
      if(Request.IsAjaxRequest()) 
      { 
        return Content('Redirect') 
      } 
      return RedirectToAction("Index", "Magnets"); 
     else 
     return View("InvalidG");    
    } 
관련 문제