我试图从控制器重新加载视图,以显示存储在TempData中的数据,这是在向我的控制器发出AJAX POST调用后的情况。问题在于,我的RedirectToAction方法调用无法重定向任何内容。
以下是一些代码示例:
视图:
我的AJAX调用可以成功调用控制器,然后运行所有控制器方法的指令,但最后一个(重定向)无法正确执行。最后一个RedirectToAction实际上调用了IncidentList(),应该返回我的视图,但没有任何反应。
我试图用View、Redirect等替换RedirectToAction,但没有任何改善。我尝试从我的AJAX成功回调函数重新加载,但行为不符合我的预期,并且我更喜欢从我的控制器中实现。
我已经在我的应用程序中做了相同的事情(使用RedirectToAction调用重新加载我的页面并显示TempData存储的数据),但是在提交表单POST而不是AJAX调用后进行的,这是否可能是问题的来源?
以下是一些代码示例:
视图:
$('#incidentTableBody').on('click', 'button.relayBack', function () {
Post('/Incident/RelayBack', { incidentId: $(this).parent().parent().data('id'), ownerId: $(this).parent().parent().data('ownerid') }, function () { });
});
function Post(action, data, callback) {
$.ajax({
url: action,
type: "POST",
data: data,
//error: function (jqXHR, textStatus, errorThrown) {
// console.log(errorThrown);
//},
success: callback,
cache: false
});
}
控制器:
[Authorize]
public ActionResult IncidentList()
{
ViewBag.Title = "IncidentList";
return View();
}
[HttpPost]
[Authorize]
public ActionResult RelayBack(string incidentId, string ownerId)
{
bool success;
try
{
new Guid(_incidentService.RelayBack(new Guid(incidentId), new Guid(ownerId)));
success = true;
}
catch
{
success = false;
}
if (success)
{
TempData["Message"] = "Le ticket a bien été relancé par l'équipe support";
TempData["Class"] = "alert-success";
}
else
{
TempData["Message"] = "Une erreur est survenue lors de la relance de l'incident";
TempData["Class"] = "alert-warning";
}
return RedirectToAction("IncidentList"); // TODO : redirect doesn't work
}
我的AJAX调用可以成功调用控制器,然后运行所有控制器方法的指令,但最后一个(重定向)无法正确执行。最后一个RedirectToAction实际上调用了IncidentList(),应该返回我的视图,但没有任何反应。
我试图用View、Redirect等替换RedirectToAction,但没有任何改善。我尝试从我的AJAX成功回调函数重新加载,但行为不符合我的预期,并且我更喜欢从我的控制器中实现。
我已经在我的应用程序中做了相同的事情(使用RedirectToAction调用重新加载我的页面并显示TempData存储的数据),但是在提交表单POST而不是AJAX调用后进行的,这是否可能是问题的来源?