我有这段代码在将其添加到列表之前检查重复项。 但是,每次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;
}
}
答案 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;
}