我正在寻找一种在 HtmlHelpers 之间共享数据的方法。目标是设置一次配置,而不是在每次调用时传递一个参数。在下面的示例中,我正在设置表单类型以确定网格配置:
@{ Html.SetFormType(HtmlHelpers.FormType.Boxed); }
@Html.FormItemFor(m => m.LoginName)
@Html.FormItemFor(m => m.Password)
public static void SetFormType(this HtmlHelper helper, FormType formType)
{
helper.ViewBag.FormType = formType;
helper.ViewContext.ViewBag.FormType = formType;
}
设置ViewBag
不会通过后续@Html
调用持续存在。设置ViewContext.ViewBag
仍然存在,但这样做安全吗?
现有方法 EnableUnobtrusiveJavaScript
设置在ScopeCache
类的实例中,该实例又添加到HttpContext.Items
. 也许这也是存储我的数据的候选者?