MVC使用TempData从Helper类重定向

时间:2015-01-29 00:49:38

标签: c# asp.net-mvc asp.net-mvc-4 redirect tempdata

在我的_Layout.cshtml中,我有几个用于显示消息的div。

<div>@TempData["SuccessMessage"]</div>
<div>@TempData["WarningMessage"]</div>
<div>@TempData["ErrorMessage"]</div>

我正在尝试创建一个全局重定向帮助程序类来显示这些消息:

MessageHelper.cs

public static RedirectResult RedirectWithMessage(Controller controller, string messagetype, string url, string message)
{
    controller.ViewData[messagetype] = message;
    return (new RedirectResult(url));
}

来自我的控制器:

return RedirectWithMessage(this, "SuccessMessage", "~/good", "Looks good");
return RedirectWithMessage(this, "WarningMessage", "~/warning", "Ooops a warning");
return RedirectWithMessage(this, "ErrorMessage", "~/error", "Danger an error");

我得到了重定向,但没有来自TempData的消息。

我使用以下方法在Controller中成功完成了这项工作:

private RedirectResult RedirectWithMessage(string messagetype, string url, string message)
{
    TempData[messagetype] = message;
    return Redirect(url);
}

非常感谢任何帮助...

1 个答案:

答案 0 :(得分:3)

你试过了吗?

controller.TempData[messagetype] = message;

ViewData不是您的布局所需要的。

也许我错过了什么。