la clé donnée n'était pas présente dans le dictionnaire
J'ai hérité d'un projet qui donne aux utilisateurs l'erreur ci-dessus, tout en essayant de récupérer mot de passe perdu en un .Net 4.0 projet. Je passais à travers et a trouvé le lieu du problème, mais le problème est, les valeurs générées semblent donc je n'ai pas la raison pour laquelle l'erreur est survenue. Merci d'avance à tous ceux qui peuvent regarder le code suivant et de m'aider à trouver comment le corriger. Permettez-moi de savoir si plus d'information est nécessaire. J'ai regardé à travers tout ce que j'ai pu trouver, mais rien ne m'a donné des indices que je pourrais utiliser. Le problème est que je ne peux tout simplement pas de trace où la clé/valeur de la combinaison doit y entrer, et je ne voudrais savoir comment les ajouter une fois que j'ai fait. Le Code qui suit.
J'ai posté une discussion similaire à http://forums.asp.net/t/1926444.aspx/1?given+clé+a+pas+présent+dans+le+dictionnaire mais il ne savait pas comment m'aider.
void EmailUser(User user)
{
user.ChangePasswordID = Guid.NewGuid();
user.Save();
MailMessage email = new MailMessage();
//problem line below
email.From = new MailAddress(Settings.LostPasswordEmailFrom);
email.To.Add(new MailAddress(uxEmail.Text));
email.Subject = Settings.LostPasswordSubject;
email.Body = EmailTemplateService.HtmlMessageBody(EmailTemplates.MembershipPasswordRecovery, new { Body = Settings.LostPasswordText, BeginRequired = "", EndRequired = "", UserName = user.Name, GUID = user.ChangePasswordID.ToString() });
email.IsBodyHtml = true;
SmtpClient client = new SmtpClient();
client.Send(email);
uxSuccessPH.Visible = true;
uxQuestionPanel.Visible = false;
uxUserInfoPanel.Visible = false;
uxUserNameLabelSuccess.Text = uxEmail.Text;
}
///<summary>
///The address that the lost password email will be sent from
///</summary>
public static string LostPasswordEmailFrom
{
get
{
if (String.IsNullOrEmpty(SiteSettings.GetSettingKeyValuePair()["LA_MembershipProvider_lostPasswordEmailFrom"]))
return Globals.Settings.FromEmail;
return SiteSettings.GetSettingKeyValuePair()["LA_MembershipProvider_lostPasswordEmailFrom"];
}
}
source d'informationauteur muybn
Vous devez vous connecter pour publier un commentaire.
lorsque vous appelez
SiteSettings.GetSettingKeyValuePair()["LA_MembershipProvider_lostPasswordEmailFrom"])
si il n'y a pas de clé nomméeLA_MembershipProvider_lostPasswordEmailFrom
vous obtiendrez "La clé donnée n'était pas présent dans le dictionnaire" erreur. Ce que vous pouvez faire est de vérifier si la clé existe d'abord et ensuite obtenir la valeur. Vous pouvez faire en tant que ci-dessous