実行時に一連の変数を作成し、変数を含めるプレースホルダーを持つテンプレートを使用して電子メールを送信するコードをコントローラーに記述しようとしています。ただし、ユーザー アカウントから変数に情報を割り当てており、ユーザーがまだその情報を入力していない場合はクラッシュします。回避策として、最初に null でないことを確認する if ステートメント内で宣言しました。しかし、それらを電子メールテンプレートに渡そうとすると、変数が存在しないことがわかります。if ステートメントを削除すると、再び機能します。理由はありますか?
コードは以下...
if (UserContext != null && UserContext.Account != null)
{
if (UserContext.UserName != null)
{ string UserName = string.Format(UserContext.UserName); }
if (UserContext.EmailAddress != null)
{ string EmailAddress = string.Format(UserContext.EmailAddress); }
if (UserContext.Account.PrimaryContactFirstName != null)
{ string FirstName = string.Format(UserContext.Account.PrimaryContactFirstName); }
if (UserContext.Account.PrimaryContactLastName != null)
{ string LastName = string.Format(UserContext.Account.PrimaryContactLastName); }
if (UserContext.Account.PrimaryContactPhoneNumber != null)
{ string PhoneNumber = string.Format(UserContext.Account.PrimaryContactPhoneNumber); }
if (UserContext.Account.HeadquartersAddressLine1 != null)
{
string AddressLine1 = string.Format(UserContext.Account.HeadquartersAddressLine1);
if (UserContext.Account.HeadquartersAddressLine2 != null)
{ string AddressLine2 = string.Format(UserContext.Account.HeadquartersAddressLine2); }
}
if (UserContext.Account.HeadquartersCity != null)
{ string City = string.Format(UserContext.Account.HeadquartersCity); }
if (UserContext.Account.HeadquartersState != null)
{ string State = string.Format(UserContext.Account.HeadquartersState); }
if (UserContext.Account.HeadquartersZip != null)
{ string ZipCode = string.Format(UserContext.Account.HeadquartersZip); }
if (UserContext.Account.Name != null)
{ string Name = string.Format(UserContext.Account.Name); }
string body = string.Format(Resources.ContactUsLoggedInEmailTemplate, model.FirstName, model.LastName, model.PhoneNumber, model.Email, model.ReasonForContact, model.Message, UserName, EmailAddress, FirstName, LastName, PhoneNumber, AddressLine1, AddressLine2, City, State, ZipCode, Name);
string subject = string.Format("Web Submit: {0}", model.ReasonForContact);
EmailHelper.SendEmail("support@website.com", subject, body, true);
}
if (UserContext == null)
{
string body = string.Format(Resources.ContactUsEmailTemplate, model.FirstName, model.LastName, model.PhoneNumber, model.Email, model.ReasonForContact, model.Message);
string subject = string.Format("Web Submit: {0}", model.ReasonForContact);
EmailHelper.SendEmail("support@website.com", subject, body, true);
}
return RedirectToAction("ContactConfirmation");