C# 使用AjaxControlToolKit Gravatar控件时出现NullReferenceException

C# 使用AjaxControlToolKit Gravatar控件时出现NullReferenceException,c#,asp.net,ajax,ajaxcontroltoolkit,nullreferenceexception,C#,Asp.net,Ajax,Ajaxcontroltoolkit,Nullreferenceexception,每当我尝试在其中一个页面中添加AjaxControlToolKit的Gravatar控件时,就会出现以下错误: 我在页面顶部添加了库作为 <%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %> 和控制为 <asp:Gravatar ID="Gravatar1" runat="server" Height="168px" Width="168p

每当我尝试在其中一个页面中添加AjaxControlToolKit的Gravatar控件时,就会出现以下错误:

我在页面顶部添加了库作为

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %>

和控制为

<asp:Gravatar ID="Gravatar1" runat="server" Height="168px" Width="168px" />


Gravatar控件在我网站的其他旧ASP.NET页面中运行良好。但当我尝试在新页面中添加它时,会出现上述异常。请告诉我发生异常的原因以及如何解决?为什么源代码错误中[没有相关的源代码行]?还请注意,我无法从工具箱中将gravatar控件拖到此页上。我必须编写上面的代码来添加控件。

您需要设置gravatar的
Email
属性

<%@ Register assembly="AjaxControlToolkit" 
  namespace="AjaxControlToolkit" tagprefix="act" %>

<act:Gravatar ID="Gravatar1" runat="server" Email="someone@somewhere.org" 
  Height="168px" Width="168px" />

更新


我刚刚研究了
Gravatar.GetHash
方法。它的第一行是
Email=Email.ToLower()。如果电子邮件为空,这将引发空异常。

如果您将电子邮件id作为会话变量传递,请使用此

Email='',其中“Email”是会话变量


另一方面,您只需要将email id放入email属性。就这样

你确定是因为ajaxrefrenceya,我尝试过删除它,但在没有GravatarI的情况下,它可以正常工作。我正在Page_Load(),
Gravatar1.email=dops.getAuthEmail(up.getUserID())正在从
Gravatar.GetHash(字符串电子邮件)
引发异常。您确定电子邮件非空吗?@shivaparek是此代码
Gravatar1.email=dops.getAuthEmail(up.getUserID())仅在初始页面加载时执行(包装在
if(!IsPostback)
块中)?抱歉,这是我愚蠢的错误。原因与@RichardSchneider的相同,即未设置电子邮件属性。但我正在设置Email属性,但由于调用数据库函数时出现异常,编译器无法访问分配代码。我忘记在代码的finally块中添加此代码。谢谢理查德:)