【问题标题】:Html-element-like string gets removed from string in textbox从文本框中的字符串中删除类似 Html 元素的字符串
【发布时间】:2014-06-26 21:44:00
【问题描述】:

当我在我的文本框中输入像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;

【问题讨论】:

  • 您不应该看到这种行为。您能否向我们展示所有相关代码(设置/获取/使用Text 属性)?有什么影响元素客户端的吗?你能告诉我们你的文本框的标记吗?
  • 我更新了第一篇文章。
  • 您拥有的不仅仅是sn-p吗?整个代码隐藏(少一些无关紧要的东西)将是理想的......
  • 我不想把公司代码放到网上。这就是我正在做的所有事情。代码或前端没有关于此文本框的修饰符。这就是为什么我想知道某处是否有配置设置。我继承了这段代码并开始解决问题。

标签: c# asp.net .net mono


【解决方案1】:

你试过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;
 }

【讨论】:

  • 我调试了代码隐藏中的值,实际的文本字段说它已经消失了。
  • 什么意思?你在后面的代码中得到了你想要的值吗?
  • 如果我调试并命中断点并检查。 _user.Text 它不存在。它说 abcghi 我没有看到 在里面
  • 所以你想在你的代码中 abc&lt;def&gt;ghi 作为文本框的值?
  • 没错,这正是我希望看到的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-19
  • 2023-03-19
  • 2020-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多