2017-01-08 7 views
1

메신저 일부 작업을하려고합니다. 닷넷 코어 및이 작업이 완료된 후, 나는 .cshtml 페이지로 리디렉션하고 싶습니다. 홈페이지에서 테이블에 행을 선택한 후, ijax로 셀의 값을 전송합니다. 이 부분 후 AJAX .Net 핵심 응용 프로그램에서 리디렉션

$('#table').find('tr').click(function() {   
     var userName = $(this).find('td').text(); 
     $.ajax({ 
      url: "/Profile/printUser", 
      type: 'POST', 
      data: { "DisplayName": userName } 
     });   
    }); 

Table

는, 메신저

[HttpPost] 
    public IActionResult printUser(User user) 
    { 
     user.DisplayName = user.DisplayName.Replace("\n", String.Empty); 
     user.DisplayName = user.DisplayName.Trim(' '); 

     User findUser = UserAdapter.GetUserByUserName(user.DisplayName); 

     return RedirectToAction("ProfileScreen",findUser);  
    } 

내 작업이 완료

기능이 지역에 가고, 난 내 사용자를 발견했다. 내가하고 싶은 것은 cshtml에이 사용자 정보를 인쇄하는 것뿐입니다. 그러나 나는 페이지에 myselft를 보낼 수 없다. 어떻게 나 자신을 리디렉션 할 수 있습니까? 감사.

당신은 백엔드에서 Ajax 호출에서 리디렉션 할 수 없습니다

public IActionResult ProfileScreen() 
    {   
     return View(); 
    } 

답변

1

INDEX. 사용 AJAX의

success: function(){ 
     windows.location.href = '/ProfileScreen'; 
    } 

다시 데이터를 전달하려면, MVC 액션에서 JSON을 반환하고 자바 스크립트는 다음과 같습니다

$('#table').find('tr').click(function() {   
     var userName = $(this).find('td').text(); 
     $.ajax({ 
      url: "/Profile/printUser", 
      type: 'POST', 
      data: { "DisplayName": userName }, 
      success: function(data){ 
       window.location.href = '/ProfileScreen' + data.ID; //or whatever 
      } 
     });   
    }); 
+0

덕분에 많이, 나는 아약스의 성공 기능에 대해 의심했다. 그것은 내 리디렉션 문제를 해결했지만 성공 (데이터)을 사용하여 내 findUser를 전달할 수 없습니다. 내 코드에서 뭔가 잘못되었습니다. 내가 사용해야합니다 반환 RedirectToAction ("ProfileScreen", findUser); ? 도움을 주셔서 감사합니다 – Berkin

+0

MVC 작업에서 JSON을 반환해야합니다. 이것을 시도해보십시오 :'return Ok (new {ID : findUser.ID}); ' –

+0

JsonResult를 사용해야합니까? – Berkin

0

솔루션

기능

[HttpPost] 
     public JsonResult printUser(User user) 
     { 
      user.DisplayName = user.DisplayName.Replace("\n", String.Empty); 
      user.DisplayName = user.DisplayName.Trim(' '); 

      User findUser = UserAdapter.GetUserByUserName(user.DisplayName); 

      return Json(new { displayName = findUser.DisplayName}); 
     }