Javascript 回发问题上的html编码

Javascript 回发问题上的html编码,javascript,asp.net,vb.net,Javascript,Asp.net,Vb.net,尝试将数据从asp文本框发布到数据库时出错。原因是由于使用html文本编辑器,文本是html 但是,当我尝试对html进行编码时,会出现以下错误:BC30451:未声明“Bind”。由于其保护级别,可能无法访问 下面是导致错误的文本框的asp代码 <asp:TextBox ID="TxtBx" runat="server" Text='<%# Server.HtmlEncode(Bind("Details").ToString())%>'/> 我肯定这是件小事,但无

尝试将数据从asp文本框发布到数据库时出错。原因是由于使用html文本编辑器,文本是html

但是,当我尝试对html进行编码时,会出现以下错误:BC30451:未声明“Bind”。由于其保护级别,可能无法访问

下面是导致错误的文本框的asp代码

<asp:TextBox ID="TxtBx" runat="server" Text='<%# Server.HtmlEncode(Bind("Details").ToString())%>'/>

我肯定这是件小事,但无法解决。我还尝试了以下方法,结果相同:

Text='<%# System.Web.HttpUtility.HtmlEncode(Bind("Details"))%>'
Text=''
我还尝试在后端创建自己的函数,以使用以下asp和vb解决此问题:

Text='<%# encodeIT(Eval("Details"))%>'

    Public Function encodeIT(Details As String) As String
    Return HttpUtility.HtmlEncode(Details)
End Function
Text=''
公共函数将其(详细信息作为字符串)编码为字符串
返回HttpUtility.HtmlEncode(详细信息)
端函数
任何帮助都将不胜感激

更新1

我尝试了一个客户端解决方案,但似乎仍然不起作用,不确定是否遗漏了什么,我一直在一个基本的web项目中进行测试,以避免可能出现的任何兼容性问题。出于本测试的目的,我已经删除了数据绑定,因为ASP会抛出相同的错误

ASP


$(文档).ready(函数(){
tinymce.init({
梅努巴:错,
宽度:800,
身高:250,
选择器:“文本区域”
});
var=(函数(){
//防止创建多个函数实例的任何开销
var-element=document.createElement('div');
函数解码HTML(str){
if(str&&typeof str=='string'){
//strip脚本和html标记
str=str.replace(/[^>]*>([\S\S]*?)/gmi,”);

str=str.replace(/如果这仅用于内部使用,请进入web配置文件并在
system.web
中分别找到
httpRunTime
页面
添加属性
requestValidationMode=“2.0”
validateRequest=“false”

代码:



在发回之前对客户端上的文本进行编码。感谢@YuriyGalanter认为这绝对是正确的做法,因为它在发回之前会出现错误,我找到了一些方法来实现html剥离,但无法使其工作。我以为您想保留html,只需对其进行编码?如果是这样,您可以使用基本函数如图所示:我想做的是,当我从上面的链接收到System.Web.HttpRequestValidationException.Use Encode函数后,再将html保存到数据库并带回,然后再发回服务器。在显示来自服务器的数据之前,使用Decode函数
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<script src="../Scripts/tinymce/tinymce.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        tinymce.init({
            menubar: false,
            width: 800,
            height: 250,
            selector: "textarea"
        });
        var decodeStuff = (function () {
            // preventing any overhead from creating more than one instance of the function
            var element = document.createElement('div');

            function decodeHtml(str) {
                if (str && typeof str === 'string') {
                    // strip script and html tags
                    str = str.replace(/<script>[^>]*>([\S\s]*?)<\/script>/gmi, '');
                    str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, '');
                    element.innerHTML = str;
                    str = element.textContent;
                    element.textContent = '';
                }
                return str;
            }
            return decodeStuff;
        });
        var text = decodeStuff('TxtBx');
    });
</script>
<asp:Panel runat="server" ID="panel1">
<table>
<tr>
    <td>
        <asp:TextBox ID="TxtBx" runat="server" Width="100%" TextMode="MultiLine" Rows="20"></asp:TextBox>
    </td>
</tr>
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    If DDL.Text <> "Select" Then
        TxtBx.Text = DDL.Text``
    End If
    Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "TxtBx", "decodeHtml();", True)
End Sub