当我在文本框中输入abc<def>ghi
之类的字符串时,当我到达后面的代码时,textbox.Text已变为abcghi
,因此<def>
已被删除。
文本框中没有属性。
有谁知道这是默认行为,还是我的配置中是.net设置?
我以前从未见过这个。
<asp:TextBox ID="_user" runat="server" MaxLength="100" Width="150px"></asp:TextBox>
foreach (char c in _user.Text.ToCharArray())
if (invalidChars.Contains(c))
return false;
答案 0 :(得分:0)
您是否尝试过Server.HtmlEncode(TextBox1.text)
。有关HtmlEncode
的更多详情,请参阅here
如果要将输入显示回用户,可以执行
Server.HtmlDecode(inputvalue)
<强>更新.. 强>
在页面指令中使用ValidateRequest="false"
。这可能会带来一些安全隐患,但即使它包含HTML字符,您实际上也会在代码中获取文本框值。
<%@ Page Language="C#" ValidateRequest="false" ...
您可以访问实际值,例如
protected void btnSubmit_Click(object sender, EventArgs e)
{
string value = TextBox1.Text;
}