아래의 변수 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>
내가 서버에 위의 양식을 제출하고 의도적으로 잘못된 이메일 주소를 입력 할 때, 양식 (명확성을 위해 여기 omited) 오류 메시지가 다시 나에게 반송됩니다. 전자 메일 값은 HTML에 두 번 나타납니다. 위 코드와 모두 일치합니다. 유일한 문제는 <p>
태그 내의 이메일 값이 텍스트 상자의 이메일 값과 다를 수 있다는 것입니다. 샘플 출력은 다음과 같습니다.
<p>Email: [email protected] <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>
어떻게 될까요? 코드에서 두 번 사용 된 같은 변수를 한 번만 할당하면 두 개의 다른 값을 전달할 수 있습니까 ???
당신은 천재입니다. 수락하고 투표하십시오. – Andy
그런데 유효성 검사 오류를 유지하려면 ModelState.Clear()를 사용하지 마십시오. ModelState [ "email"]처럼 값을 변경하십시오 .Value = new ValueProviderResult (...). – queen3