C# 使用encodeURI()时,编码文本在回发之前显示

C# 使用encodeURI()时,编码文本在回发之前显示,c#,javascript,asp.net,urlencode,encodeuricomponent,C#,Javascript,Asp.net,Urlencode,Encodeuricomponent,我在button控件的OnClientClick上调用一个javascript函数,对电子邮件正文文本的textbox值进行编码。该JS函数调用encodeURI()对textbox的文本值进行编码 标记: <asp:Button ID = "btnSend" runat = "server" Text= "Send" OnClientClick = "return encodeBody()"/> 问题是当它发回文本框中的文本时,会显示编码文本一秒钟,然后发送电子邮件。这是一个问题

我在button控件的OnClientClick上调用一个javascript函数,对电子邮件正文文本的textbox值进行编码。该JS函数调用encodeURI()对textbox的文本值进行编码

标记:

<asp:Button ID = "btnSend" runat = "server" Text= "Send" OnClientClick = "return encodeBody()"/>

问题是当它发回文本框中的文本时,会显示编码文本一秒钟,然后发送电子邮件。这是一个问题。另一个问题是,如果发生错误,用户将看到编码的测试,而不是他们输入的原始文本。

由于您将该输入字段的值设置为编码url,因此用户可以看到该字段

为了避免这种情况,请使用隐藏输入字段并将其值设置为encodedURI

function encodeBody() {
    document.getElementById(hiddenfield).value = encodeURI(document.getElementById(txtBodyID).value);
}
function encodeBody() {
    document.getElementById(hiddenfield).value = encodeURI(document.getElementById(txtBodyID).value);
}