Vấn đề là khi điều này được đăng lên máy chủ, nó sẽ không hoạt động, không quan trọng những gì bạn thử. Đây là bảo vệ ASP.NET XSS, có thể bị vô hiệu hóa như vậy:
<%@ Page ... ValidateRequest="false" %>
Rắc rối là, bạn sẽ phải rất cẩn thận xác nhận tất cả các postback mình. Cách dễ dàng hơn là thoát tất cả nội dung của hộp văn bản bằng cách sử dụng javascript ngay trước khi đăng. Bạn có thể thoát khỏi nó bằng cách sử dụng cùng một HTML thoát, sau đó unescape trong mã phía máy chủ.
Cập nhật: Ví dụ về thoát. Điều này sẽ làm thay đổi văn bản đã thay đổi trên màn hình trước khi đăng lại - giải pháp lý tưởng là sử dụng trường ẩn cho điều này, tức là gán giá trị cho trường ẩn, thay vì trường đó.Đây là phiên bản đơn giản nhất:
<script>
function EscapeField(){
document.getElementById("your client control ID").value =
escape(document.getElementById("your client control ID").value);
}
</script>
Và trong code-behind:
this.ClientScript.RegisterOnSubmitStatement(this.GetType(),
"EscapeField", "EscapeField();")
Cập nhật: Một lần nữa, cảnh báo - nếu bạn lưu HTML trong cơ sở dữ liệu của bạn như thế này, và sau đó chỉ cần hiển thị nó cho khách hàng, bạn đang trực tiếp dễ bị tấn công XSS. Có những con giun ở đó sẽ tìm và khai thác trang web của bạn. Hãy chắc chắn rằng bạn làm sạch HTML bạn đang nhận được.
http://stackoverflow.com/questions/35504083/need-client-side-validation-for-textbox-if-and-are-used-in-textbox-asp-n – Sachin