C# Server.htmlencode和带有MaxSize的文本框

C# Server.htmlencode和带有MaxSize的文本框,c#,asp.net,vb.net,encoding,C#,Asp.net,Vb.net,Encoding,我在页面上有一个文本区域输入。此文本框是多行的,最大大小为500个字符。我正在使用.NET4.0 <asp:TextBox ID="TxtOther" Width="530px" TextMode="MultiLine" Style="word-wrap: break-word;height: 300px; overflow: auto; vertical-align: top" runat="server" AutoComplete="off" MaxLength="500" />

我在页面上有一个文本区域输入。此文本框是多行的,最大大小为500个字符。我正在使用.NET4.0

<asp:TextBox ID="TxtOther" Width="530px" TextMode="MultiLine" Style="word-wrap: break-word;height: 300px; overflow: auto; vertical-align: top" runat="server" AutoComplete="off" MaxLength="500" /> 

这种情况是这样的(例如):用户可以在文本区域中输入499个字符,其中包括一个“,当您有MaxLenght=“500”时,在服务器上进行验证-在客户端提交用户输入后。server.HtmlEncode也会在服务器上执行

如果创建客户端自定义验证器,则可以将输入限制在500个字符以下,并消除第500个字符为“”的编码问题

它还可以节省往返服务器的时间

在网页上,您需要添加自定义验证程序:

<asp:CustomValidator ID="CustValid500" runat="server"
     ControlToValidate ="TxtOther"
     ErrorMessage ="500 or more characters are not allowed"
     ClientValidationFunction = "ValidateLength" >
</asp:CustomValidator>

还有一点javascript:

<script type ="text/javascript">
     function validateLength(oSrc, args)
     { args.IsValid = (args.Value.length < 500); }
</script>

函数validateLength(oSrc、args)
{args.IsValid=(args.Value.length<500);}

我已经有了一个javascript来处理/处理长度问题。因此,我完全排除了maxlength问题,但它仍然存在。因此,我想做的是允许用户输入或复制/粘贴。问题是如果他们输入499个字符;如果他们保存服务器端,将执行server.htmlencoding。结果超过500个字符,只需要500个字符(截断其余字符),但我不想允许整个复制/粘贴,如果它进行编码,将导致>500。我该怎么做?我拥有的与您拥有的接近,尽管没有长度验证器。我有一个javascript而不是CustomerValidator(本质上是服务器端,而不是客户端)我拥有的是客户端。但是客户端上的编码部分与服务器端的功能相匹配。我能做些什么呢,还是只能留在服务器端?