0

我正在寻找一种在 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. 也许这也是存储我的数据的候选者?

4

1 回答 1

2

您可以使用基于请求的范围对象,HttpContext.Current.Items因为HttpContext.Current它实际上是唯一唯一且始终存在于请求中的容器。

干杯

PS:不要把所有东西都直接放入物品中。只需在此处添加一个控制器项并进行处理。

于 2013-06-24T13:29:21.760 回答