首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RedirectToAction发送对象

RedirectToAction发送对象
EN

Stack Overflow用户
提问于 2019-09-06 11:17:13
回答 2查看 52关注 0票数 0

我知道有类似的问题,但这些问题只是传递一个单一的价值。

我的问题是,属性对象在RedirectToAction()方法中总是为空。但是,如果使用int或string,则可以成功地将数据传递给Error方法。

如果你看这张照片。

--如果我使用这段代码,它就能工作.

代码语言:javascript
复制
string error = "Test"
return RedirectToAction("Error2", "Home", new { errorMessage = error });

错误2获取错误消息"Test"

代码语言:javascript
复制
[AllowAnonymous]
public IActionResult Error2(string errorMessage)
{

    return View(new ErrorViewModel
    { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}

,但如果这不起作用。消息是null.

代码语言:javascript
复制
ErrorViewModel error = new ErrorViewModel
{
    RequestId = "Home",
    ControllerName = "Home Controller",
    ActionName = "Index",
    ErrorMessage = "Error Message 1"
};

return RedirectToAction("Error", "Home", new { errorMessage = error });

Error方法的errorMessage一切都为空。

代码语言:javascript
复制
[AllowAnonymous]
public IActionResult Error(ErrorViewModel errorMessage)
{
    log.Log(errorMessage);
    return View(new ErrorViewModel
    { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
EN

回答 2

Stack Overflow用户

发布于 2019-09-06 11:48:06

对这样的复杂类型使用TempData

代码语言:javascript
复制
ErrorViewModel error = new ErrorViewModel {
    RequestId = "Home",
    ControllerName = "Home Controller",
    ActionName = "Index",
    ErrorMessage = "Error Message 1"
};

TempData["Message"] = error;

return RedirectToAction("Error", "Home");

并在目标操作中检索它。

代码语言:javascript
复制
[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 });
}
票数 2
EN

Stack Overflow用户

发布于 2019-09-06 11:42:38

这很管用。

代码语言:javascript
复制
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 });
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57820982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档