【问题标题】:Gettting Object reference not set to an instance of an object. using linq c# datatable angularjs?获取对象引用未设置为对象的实例。使用 linq c# datatable angularjs?
【发布时间】:2017-08-01 17:57:10
【问题描述】:

我正在使用数据表 angularjs 创建一个用于查看用户列表的小演示。在此数据表中还包括搜索、分页等。在 sql server 中,我的表包含此字段的名字、姓氏、电子邮件、电话号码,然后电子邮件列为空. 然后第一次加载页面我的数据会很好地显示。但是应用任何分页,搜索然后得到像这样的错误“对象引用未设置为对象的实例。”使用 linq c# 形成我的查询。

这是我的 C# 代码:

public ActionResult GetUserList(string searchRequest, string fromDate, string toDate)
    {
        try
        {
            var draw = Request.Form.GetValues("draw").FirstOrDefault();            

            var searchValue = Request.Form.GetValues("search[value]").FirstOrDefault();     

            List<UserInfo> UserList = new List<UserInfo>();

            if (searchRequest != null)
            {
                if (searchRequest == "All Time")
                    UserList = db.UserInfo.ToList();
                else if (searchRequest == "Today")
                {
                    DateTime date = DateTime.Today;
                    UserList = db.UserInfo.Where(t => DbFunctions.TruncateTime(t.datetime) == DbFunctions.TruncateTime(date)).ToList();
                }                   
            }

            //search
            if (!string.IsNullOrEmpty(searchValue))
            {
                UserList = UserList.Where(a =>
                    a.firstname.Contains(searchValue) ||
                    a.lastname.Contains(searchValue) ||
                    a.email.Contains(searchValue) ||
                    a.phoneno.Contains(searchValue) 
                    ).ToList();
            }


            var Details = UserList.Select(h => new
            {                
                h.firstname,
                h.lastname,                   
                h.email,
                h.phoneno,
                fullName = h.firstname + " " + h.lastname
            });
            return Json(new { draw = draw, data = Details });
        }
        catch (Exception ex)
        {
            throw;
        }

        return Json(null);
    }

这是我的代码并输入任何值进行搜索得到此错误。我知道为什么此错误出现在表中我的电子邮件列为空所以电子邮件是否包含数据所以如何在查询中维护电子邮件任何人都知道然后请让我知道吗?

【问题讨论】:

    标签: c# angularjs linq datatable


    【解决方案1】:

    将“搜索”部分替换为以下内容:

     if (!string.IsNullOrEmpty(searchValue))
            {
                UserList = UserList.Where(a =>
                    (a.firstname != null ? a.firstname.Contains(searchValue) :false) ||
                    (a.lastname != null ? a.lastname.Contains(searchValue) : false)  ||
                    (a.email != null ?  a.email.Contains(searchValue) : false) ||
                    (a.phoneno != null ? a.phoneno.Contains(searchValue) : false) 
                    ).ToList();
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多