C# 重定向操作发送对象
我知道也有类似的问题,但这些问题只传递了一个值 我的问题是,使用RedirectToAction()方法时,属性对象总是空的。 但如果我使用int或string,我可以成功地将数据传递给Error方法 如果你看这幅画 如果我使用此代码,它将正常工作。C# 重定向操作发送对象,c#,.net-core,C#,.net Core,我知道也有类似的问题,但这些问题只传递了一个值 我的问题是,使用RedirectToAction()方法时,属性对象总是空的。 但如果我使用int或string,我可以成功地将数据传递给Error方法 如果你看这幅画 如果我使用此代码,它将正常工作。 string error = "Test" return RedirectToAction("Error2", "Home", new { errorMessage = error }); ErrorViewModel error = new
string error = "Test"
return RedirectToAction("Error2", "Home", new { errorMessage = error });
ErrorViewModel error = new ErrorViewModel
{
RequestId = "Home",
ControllerName = "Home Controller",
ActionName = "Index",
ErrorMessage = "Error Message 1"
};
return RedirectToAction("Error", "Home", new { errorMessage = error });
错误2获取错误消息“Test”
但如果这不起作用。消息为空。
string error = "Test"
return RedirectToAction("Error2", "Home", new { errorMessage = error });
ErrorViewModel error = new ErrorViewModel
{
RequestId = "Home",
ControllerName = "Home Controller",
ActionName = "Index",
ErrorMessage = "Error Message 1"
};
return RedirectToAction("Error", "Home", new { errorMessage = error });
Error方法的errorMessage所有内容都为null
[AllowAnonymous]
public IActionResult Error(ErrorViewModel errorMessage)
{
log.Log(errorMessage);
return View(new ErrorViewModel
{ RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
这是有效的
public IActionResult Index()
{
return RedirectToAction("Error", "Home", new ErrorViewModel
{
RequestId = "Home",
ControllerName = "Home Controller",
ActionName = "Index",
ErrorMessage = "Error Message 1"
});
}
[AllowAnonymous]
public IActionResult Error(ErrorViewModel error)
{
log.Log(error);
return View(new ErrorViewModel
{ RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
这是有效的
public IActionResult Index()
{
return RedirectToAction("Error", "Home", new ErrorViewModel
{
RequestId = "Home",
ControllerName = "Home Controller",
ActionName = "Index",
ErrorMessage = "Error Message 1"
});
}
[AllowAnonymous]
public IActionResult Error(ErrorViewModel error)
{
log.Log(error);
return View(new ErrorViewModel
{ RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
对于这样的复杂类型,请使用
TempData
ErrorViewModel error = new ErrorViewModel {
RequestId = "Home",
ControllerName = "Home Controller",
ActionName = "Index",
ErrorMessage = "Error Message 1"
};
TempData["Message"] = error;
return RedirectToAction("Error", "Home");
并在目标操作中检索它
[AllowAnonymous]
public IActionResult Error() {
if (TempData["Message"] != null) {
ErrorViewModel errorMessage = (ErrorViewModel) TempData["Message"];
log.Log(errorMessage);
}
return View(new ErrorViewModel
{ RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
对于这样的复杂类型,请使用
TempData
ErrorViewModel error = new ErrorViewModel {
RequestId = "Home",
ControllerName = "Home Controller",
ActionName = "Index",
ErrorMessage = "Error Message 1"
};
TempData["Message"] = error;
return RedirectToAction("Error", "Home");
并在目标操作中检索它
[AllowAnonymous]
public IActionResult Error() {
if (TempData["Message"] != null) {
ErrorViewModel errorMessage = (ErrorViewModel) TempData["Message"];
log.Log(errorMessage);
}
return View(new ErrorViewModel
{ RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
对于这样的复杂类型,请使用
TempData
。谢谢。我正在记录错误日志。我需要这个log.log()方法的数据。对于这样的复杂类型,请使用TempData
。谢谢。我正在记录错误日志。我需要log.log()方法的这些数据。