• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

返回RedirectToAction不返回新的视图

asp.net-mvc 来源:yusry 4次浏览

我有返回动作不同的控制器的方法。我正在使用return RedirectToAction并传递一个参数。该参数成功传递给另一个控制器。但它不会返回任何视图。该页面应该加载并返回一个新的视图。这里是我的代码:返回RedirectToAction不返回新的视图

控制器1:

public ActionResult Work(int id, int staffId) 
{    
    return RedirectToAction("CreateStaffWork", "Staff", new { id = staffId}); 
} 

控制器2(职员):

public ActionResult CreateStaffWork(int id) 
{ 
    Staff staffInfo= db.Staff.Find(id); 
    StaffInputModel newStaffWork = new StaffInputModel { StaffId = staffInfo.Id }; 
    return View(newStaffWork); 
} 

它应该返回CreateStaffWork视图,但网页不刷新。运行代码时没有错误。我应该怎么做才能让视图返回?

我使用Ajax请求提交表单:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#LoadStaffListTable tbody").on('click', '.select', function (e) { 
      e.preventDefault(); 
      $.ajax({ 
       url: '/StaffWork/Work', 
       type: 'POST', 
       data: { id: $(this).data('id'), staffId: $(this).data('staffId') }, 
       dataType: 'json', 
      }); // end ajax 
     }); 
}); 


===========解决方案如下:

正如评论所说,AJAX的目的是要留在同一个页面。如果您重定向到新页面,则只需使用适当的参数重定向到Work操作方法。

click事件处理程序更改为:

$("#LoadStaffListTable tbody").on('click', '.select', function(e) { 
    location.href = '@Url.Action("Work", "StaffWork")?id=' + $(this).data('id') + '&staffId=' + $(this).data('staffId'); 
}); 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)