【发布时间】:2019-03-29 14:22:57
【问题描述】:
这段代码展示了如何设置然后从TempData对象中读取数据:
TempData["ErrorMessage"] = "some message";
var foo = TempData["ErrorMessage"];
如果我必须在我的应用程序中经常使用TempData["ErrorMessage"],那么在开发新东西时总是存在输入错误的风险。
我正在考虑一种更安全的方法来防止这种情况发生,所以我创建了一个类:
/// <summary>
/// Contains a list of keys which are used in TempData across the controllers
/// </summary>
public static class TempDataKeys
{
/// <summary>
/// Stores the error message which is optionally dispalyed in the Shared/_ErrorMessage partial view defined in the _Layout.cshtml
/// </summary>
public const string ErrorMessage = "ErrorMessage";
}
然后像这样设置和读取数据:
TempData[TempDataKeys.ErrorMessage] = "some message";
var foo = TempData[TempDataKeys.ErrorMessage];
现在我在考虑是否有另一种方法可以通过为TempData 创建扩展方法来实现类似的事情,这样我就可以像这样设置和读取数据
TempData.ErrorMessage = "some message";
var foo = TempDataKeys.ErrorMessage;
我知道它可能看起来像使用ViewBag 但是,我需要有ViewBag 没有的编译时安全性。无论如何,ViewBag 的工作方式与我想要实现的完全不同。
有什么想法吗? 干杯
【问题讨论】:
标签: c# asp.net-core asp.net-core-mvc extension-methods tempdata