下面的变量email
被使用了两次:首先在<p>
标签内,然后作为 a 的值传递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>
当我将上述表单提交到服务器并故意输入格式错误的电子邮件地址时,该表单将返回给我并显示一条错误消息(为清楚起见,此处省略)。email 值将在 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>
这是怎么发生的?同一个变量,在代码中使用了两次,只赋值一次,怎么能提供两个不同的值???