Я работаю над веб-сайтом, который должен отправить сообщение электронной почты с URL-адресом в нем, однако URL-адрес печатается с лишним «;» в этом. Например:URL-адрес в строке, поврежденной апострофом
Для того, чтобы нам продолжать с вашим запросом, пожалуйста, нажмите here, чтобы подтвердить свой адрес электронной почты или вставьте ссылку в свой браузер: http://localhost/Account/ConfirmEmail?userId=605fa142&code;=7fBi8oRavW6C
Второй экземпляр у вышеуказанного URL не должно быть ';' после параметра 'code'. Вы заметите, что URL-адрес в <a href>here</a>
не имеет дополнительного апострофа. Я пробовал это с IE и Chrome и получал тот же результат. Я подозреваю, что браузер помещает апостроф, но я не знаю, почему.
Текст электронной почты извлекается из файла ресурса:
<p>Dear {0}<p></BR><p>Thank you for signing up to access the Extranet with the email address {1}.</p><p>In order for us to continue with your request, please click <a href="{2}">here</a> to confirm your email address or paste the following link in to your browser:</BR><a href="{2}">{2}</a>
и заполняется детали с помощью string.format()
:
string.Format(ConfirmEmailBody, firstName, email, callbackUrl)
Я боролся с этим в течение последних нескольких часов , единственное, о чем я могу думать, это то, что последовательность &code=
имеет какое-то значение. Кто-нибудь еще видел это раньше?
EDIT 1
В CallBackURL генерируется с этим кодом:
var callbackUrl = Url.Action("ConfirmEmail", "Account",
new { userId = userID, code = code }, protocol: Request.Url.Scheme);
Я поставить точку останова в VS после создания CallBackURL и URL генерируется не содержат апостроф.
EDIT 2
кажется, что 'код' не имеет никакого значения. Я изменил параметры URL и браузеры напечатать строку с лишними апострофами для каждого параметра:
localhost/Account/ConfirmEmail?userId=80216107-1d0e-432c-88cc-69f18be2111e&foo;=wibble&bar;=wobble
Вы устранили очевидную возможность? т. е. помещая точку останова на строку 'string.Format (...)', чтобы увидеть, действительно ли у callbackUrl'а этот дополнительный _semicolon_? –
Да, там ничего нет. Тот же параметр ('callbackUrl') вводится в двух местах с помощью '{2}'. – GrandMasterFlush
Не уверен, что это ошибка копирования-вставки, но есть и другая разница между вашими URL-адресами: одна в «Здесь» содержит другой идентификатор пользователя (имеет в конце «2») –