ajax post back后重置MVC全局列表

时间:2017-02-28 07:51:59

标签: jquery ajax asp.net-mvc

我有这段代码在将其添加到列表之前检查重复项。 但是,每次ajax后调用。列表将返回重置为0.

无论如何要保持列表中的数据?

Javascript:

 function addbarcode() {
    debugger
    var artno = $("#scanner").val();
    $.ajax({
        url: '@Url.Action("Addbarcode", "Home")',
        type: 'POST',
        datatype: 'json',
        data: { "text": artno },
        success: function (data) {

            $("#msg").html(data);

        },
        error: function (err) {

            document.getElementById('msg').innerHTML = err;
        }
    });
}

**控制器*:*

List<Barcode> getListBarcode=new List<Barcode>();
  public string Addbarcode(string text) {
        Barcode barcode = new Barcode();
        barcode.original = text;
        barcode.Article= text.Substring(10, 5);
        barcode.serial= text.Substring(text.Length - 14);
        if (getListBarcode.Contains(barcode)==false)
        {
            getListBarcode.Add(barcode);
            Session["barcodelist"] = getListBarcode;
            string total= "Total of :" + getListBarcode.Count;
            return total;
        }
        else
        {
            return "Duplicates";
        }

    }

已编辑1 使用getter和setter

运行代码时延迟分配
 public List<Barcode> getListBarcode {

        get
        {
            if (_listofbarcode == null)
            {
                _listofbarcode = new List<Barcode>();
            }
            else
            {
                if (Session["barcodelist"] !=null)
                {
                    _listofbarcode = (List<Barcode>)Session["barcodelist"];
                }

            }

            return _listofbarcode;
        }

        set {
            if (_listofbarcode==null)
            {
                _listofbarcode = new List<Barcode>();
            }
            _listofbarcode = value;

        }

}

1 个答案:

答案 0 :(得分:1)

你总是设置getListBarcode = new List();

您可以参考下面的代码:

private List<Barcode> GetListBarCode()
{
   List<Barcode> getListBarcode = new List<Barcode>();
   if(Session["barcodelist"] != null)
   getListBarcode = (List<Barcode>) Session["barcodelist"];
   return getListBarcode;
}