2017-01-08 12 views
1

im пытается выполнить некоторую операцию .Net Core, и после этой операции я хочу перенаправить ее на страницу .cshtml. На домашней странице у меня есть таблица, после выбора строки в таблице, im, отправляющей значение ячейки с помощью ajax.Перенаправление в .Net Core Application

Table

AJAX

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

После этой части, я собираюсь в эту область

ФУНКЦИЯ

[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 на страницу. Как я могу перенаправить себя? Благодарю.

INDEX

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

ответ

1

Вы не можете перенаправить от Ajax вызова в интерфейсе. Использование AJAX в

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

Если вы хотите передать данные обратно, вернуть JSON от действий MVC и ваш JavaScript будет:

$('#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

Большое спасибо, Я подозревал об успешной функции ajax. Он решил мою проблему перенаправления, но я не смог передать мой findUser с использованием успеха (данных). В моем коде что-то не так. Я должен использовать return RedirectToAction («ProfileScreen», findUser); ? Спасибо за помощь. – Berkin

+0

Вы должны вернуть JSON из своего MVC Action. Попробуйте это: '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}); 
     } 

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

  • Нет связанных вопросов^_^