Переменная email
ниже используется дважды: сначала внутри тега <p>
, а затем передается как значение textbox
.
Вопрос : Дадут ли оба случая одинаковый текст? Хотите верьте, хотите нет - они разные.
#UserProfileEditForm form = (UserProfileEditForm)ViewData["form"];
#string email = form.email;
<p>Email: ${HttpUtility.HtmlEncode(email)} <a class="ajax edit" href="${editEmailUrl}">Edit</a></p>
#if (form.editEmail)
#{
<form name="f_email" action="${editEmailUrl}" ....>
${Html.TextBox("form.email", email, new { @class="ajax string"}) }
</form>
#}
</div>
Когда я отправляю вышеуказанную форму на сервер и намеренно набираю неверно сформированный адрес электронной почты, форма возвращается мне с сообщением об ошибке (для ясности здесь опущено). Значение электронной почты будет отображаться дважды в HTML - все в соответствии с приведенным выше кодом. Единственная проблема заключается в том, что значение адреса электронной почты внутри тега <p>
будет отличаться от значения в текстовом поле. Пример вывода ниже:
<p>Email: test@testing.test <a class="ajax edit" href="...">Edit</a></p>
<form class="ajax edititem" name="f_email" id="f_email" .....>
<input class="ajax string" id="form_email" type="text" value="changed````@testing.gov" />
</form>
</div>
Как это происходит? Как одна и та же переменная, дважды использованная в коде, назначенная только один раз, может выдавать два разных значения ???