【发布时间】:2014-07-13 02:11:44
【问题描述】:
我在页面上有一个 TextArea 输入。此文本框是多行的,最大大小为 500 个字符。我正在使用 .NET 4.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" />
情况是这样的(例如):用户可以在 textarea 中输入大约 499 个字符,其中包括一个“
现在,不好的地方在于代码隐藏,它将获取输入的文本并对其执行 Server.HtmlEncode。
如果我手动输入显然 maxlength 将被处理,但它仍然可能发生。如果您进行剪切/复制和粘贴,则不会处理 maxlength,但无论如何我只会取 500 个字符,但同样的情况仍然可能发生在那里。
它最终会进入数据库,而数据库列是 nvarchar 500。它不是文本或类似的东西。无论出于何种原因,它都是一个 nvarchar 500,这不是我可以改变的。
如何让客户端上的代码对输入的文本进行编码,以验证编码后它仍然小于 500?我愿意截断超过 500 个字符。
【问题讨论】:
标签: c# asp.net vb.net encoding