C# 在MVC中,为会话赋值,使对象引用未设置为对象异常的实例

C# 在MVC中,为会话赋值,使对象引用未设置为对象异常的实例,c#,asp.net,.net,asp.net-mvc,wcf,C#,Asp.net,.net,Asp.net Mvc,Wcf,问题陈述: 通过WCF服务对登录凭据进行身份验证。基于登录ID身份验证,在一个或多个控制器中调用用于将客户ID分配给会话的方法会产生空引用异常。我做错了什么 WCF服务代码: 在这里,我可以根据登录id验证用户并获取客户详细信息 public bool IsValid(LoginDC objLoginDC) { try { var result = dbEntity.CustomerUsers.FirstOrDefault(m => m.LoginID ==

问题陈述:

通过WCF服务对登录凭据进行身份验证。基于登录ID身份验证,在一个或多个控制器中调用用于将客户ID分配给会话的方法会产生空引用异常。我做错了什么

WCF服务代码:

在这里,我可以根据登录id验证用户并获取客户详细信息

public bool IsValid(LoginDC objLoginDC)
{
    try
    {
        var result = dbEntity.CustomerUsers.FirstOrDefault(m => m.LoginID == objLoginDC.LoginID && m.Password == objLoginDC.Password);
        
        if (result != null)
        {
            return true;
        }
        else
        {
            return false;
        }

    }
    catch
    {
        return false;
    }
}

public IEnumerable<CustomerUserDC> GetLoginCustomerUserDetails(LoginDC objLoginDC)
{

    return (from tu in dbEntity.CustomerUsers.AsEnumerable()
            where tu.LoginID == objLoginDC.LoginID && tu.Password == objLoginDC.Password
            select new CustomerUserDC
            {
               CustomerID = tu.CustomerID,
                UserID = tu.UserID,
                Name = tu.Name

            }).ToList();

}
通用控制器:

在这里,我无法分配从登录控制器中的WCF服务获得的值,因为对象引用未设置为常规控制器中对象异常的实例

public void GlobalSessionCustomerUserDetails(dynamic varLoginCustomerUserDetails)
{
    Session["TempCustDetails"] = varLoginCustomerUserDetails[0].LoginID;
}

尝试将返回类型更改为列表。。。
公共列表GetLoginCustomerUserDetails(LoginDC objLoginDC)

对我来说,似乎
varLoginCustomerUserDetails
为空或为空列表。@DZL否,varLoginCustomerUserDetails有值。我已签入即时窗口。保留关于varlogincustomeuserdetails的信息,即使我分配了任何字符串(例如:Session[“TempCustDetails”]=“Hi”),也会显示相同的错误。没有一个值分配给Session,为什么?您在登录控制器中声明
objLoginDC
的位置在哪里?这可能是null吗?@DStanley否,varlogincustomeuserdetails[0]。LoginID具有值。我已签入即时窗口。关于varlogincustomeuserdetails,即使我分配了任何字符串(例如:Session[“TempCustDetails”]=“Hi”),它也会显示相同的错误。没有一个值分配给Session,为什么?为什么我应该将var(dynamic)更改为list???关于将返回类型更改为ListVarLogincCustomerUserDetails,即使我分配了任何字符串(例如:Session[“TempCustDetails”]=“Hi”),它也会显示相同的错误。没有一个值分配给Session,为什么?如果我没有明确提及……我说的是“返回类型”(IEnumerable to List),而不是“参数”(dynamic to List)。
public void GlobalSessionCustomerUserDetails(dynamic varLoginCustomerUserDetails)
{
    Session["TempCustDetails"] = varLoginCustomerUserDetails[0].LoginID;
}