代码之家  ›  专栏  ›  技术社区  ›  Michael Teper Ryan Lee

如何在MVC局部视图中持久化一个值?

  •  0
  • Michael Teper Ryan Lee  · 技术社区  · 14 年前

    我有一个搜索框,它作为局部视图实现。我希望最后搜索的值保持不变(想想yelp,位置总是在那里,不管您正在查看的页面是什么)。我正在考虑将它存储在一个cookie中,但是我不确定在哪里添加代码来读取cookie并将值添加到视图模型中。任何建议都将不胜感激。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Alex    14 年前
    public static class SiteSettings
    {
        //private static string _location;
        public static string Location
        {
            get
            {
                return Response.Cookies["location"].Value;
            }
        }
    
        private static string _loginReturnUrl;
        public static string LoginReturnUrl
        {
            get
            {
                if (_loginReturnUrl == null)
                    _loginReturnUrl = WebConfigurationManager.AppSettings["LoginReturnUrl"];
                return _loginReturnUrl;
            }
        }
    }
    

    更新 然后在你的控制器中,部分或代码隐藏你可以这样调用它…

    string location = SiteSettings.Location;
    

    我不会在任何模型中放置location属性,除非它是其他需要位置信息的模型继承的基础模型…

    我使用这个模式访问来自不同商店的参数。使用它来缓存不经常更改的值…