我有一个方法可以将动作返回给不同的控制器。我正在使用return 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
});
});
答案 0 :(得分:0)
正如评论中所提到的,ajax的目的是保持在同一页面。如果您要重定向到新页面,只需使用适当的参数重定向到Work
操作方法即可。
将您的click
事件处理程序更改为:
$("#LoadStaffListTable tbody").on('click', '.select', function(e) {
location.href = '@Url.Action("Work", "StaffWork")?id=' + $(this).data('id') + '&staffId=' + $(this).data('staffId');
});