如何从客户端缓存?

时间:2013-12-02 07:21:25

标签: asp.net asp.net-mvc-3 caching client-side

我在asp.net mvc3应用程序中搜索了一个关键字。服务器端具有自动完成功能的文本框是此处的主要项目。但问题是,由于服务器端缓存,使用相同应用程序的2个用户将获得另一个用户的搜索结果。这是我的服务器端编码..

function AutoComplete() {
    AccessService({ url: "/Home/AutoFill",
        type: "GET",
        asyncAction: false,
        contentType: "application/json",
        dataType: "json",
        success: function (data) {
            var inputArray = data.workOrderNos.split('ß');
            $('#txt_keyword').autocomplete({
                source: inputArray,
                minLength: 1
            });
        }
    });
}

在HomeController中:

public JsonResult AutoFill()
        {
            string _workOrderNos = _iManagePropertyMaintenances.GetAllWorkOrderNumbers(); //Will retrieve all values

            return Json(new { workOrderNos = _workOrderNos }, JsonRequestBehavior.AllowGet);
        }

如何通过客户端进行自动完成和搜索?这样不同的用户得到自己的搜索条件的结果??

 private string UserViceSearchCriteriaName = "WorkOrderSearchCriteria" ;

 public ActionResult ViewWorkOrders(string criteria)
        {

    if (criteria != "")
                {
                    if (HttpContext.Cache[UserViceSearchCriteriaName] != null)
                        HttpContext.Cache[UserViceSearchCriteriaName] = criteria;
                    else
                        HttpContext.Cache.Add(UserViceSearchCriteriaName, criteria, null, Cache.NoAbsoluteExpiration, new TimeSpan(1, 0, 0), CacheItemPriority.Normal, null);
                    ViewData["WorkOrderSearchCriteria"] = HttpContext.Cache[UserViceSearchCriteriaName].ToString();
                }
}

这样我们就会跟踪标准(文本框中的值)

0 个答案:

没有答案