以下の変数email
は 2 回使用されます。最初は<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>
上記のフォームをサーバーに送信し、故意に不正な形式のメール アドレスを入力すると、エラー メッセージが表示されてフォームが戻ってきます (わかりやすくするためにここでは省略しています)。電子メールの値は HTML に 2 回表示されます。すべて上記のコードに沿っています。唯一の問題は、<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>
これはどのように起こりますか?コードで 2 回使用され、1 回だけ割り当てられた同じ変数が、2 つの異なる値をどのように提供できるのでしょうか?