我使用团结来注入上下文并使用以下终身管理器...

public class HttpContextLifetimeManager<T> : LifetimeManager, IDisposable
{
    #region IDisposable Members

    public void Dispose()
    {
        RemoveValue();
    }

    #endregion

    public override object GetValue()
    {
        object value = HttpContext.Current.Items[typeof (T).AssemblyQualifiedName];

        return value;
    }

    public override void RemoveValue()
    {
        HttpContext.Current.Items.Remove(typeof (T).AssemblyQualifiedName);
    }

    public override void SetValue(object newValue)
    {
        HttpContext.Current.Items[typeof (T).AssemblyQualifiedName]
            = newValue;
    }
}
.

  • 第一个请求到第一个:显示值。 Page 2的第一个Web请求:更新值。
  • 第二页请求到第一个:显示旧值。
  • 第二页请求Page二:显示新值。

    我必须重新启动VS开发服务器以获取第一个以显示新值。

    所以上下文a)如何在页面请求和b之间生活,b)特定于页面?

有帮助吗?

解决方案

这与EF无关。生成的UI与实体不同步,实体正在抛出未在UI中报告的验证错误。如果脚手架模板已生成验证摘要,它将有所帮助,该验证摘要不仅显示模型级别错误。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top