资源: WebForm、VS 2010、.Net 4.0、SQL Server 2008 R2、IE 11 和 Chrome 36.0.1985.125 m。
Web 表单旨在创建电子邮件通知。因此,我有textbox
一个ajax HtmlEditorExtender
附在它上面的。在用户添加/编辑应该是电子邮件正文的 html 文本后,它会保存在varbinary(max)
db.xml 的列中。
调试
在调试模式下,我注意到当用户单击表单上的保存按钮时,我收到一个 JS 错误(虽然我的表单中根本没有任何 js 脚本!):
此错误来自HTMLEditorExtender
当我删除此控件时,提交表单时页面上不再出现任何错误。按继续,在调试中,我没有得到任何其他意外行为,并且文本以正确的 html 格式保存在数据库中。
生产
当网站发布时,我得到了这种奇怪的行为(用户输入以下文本):
第一次点击保存后:
在我点击保存几次而不更改任何文本后:
这只发生在 IE 中(在 IE 11 中测试过,我不知道它在以前版本的 IE 中是否相同)。在 Google Chrome 中它工作正常,但在我的公司中,唯一允许的浏览器是 IE,所以 Chrome 在这里对我没有任何好处。
以下是一些代码片段:
ASP:
控制:
<td colspan="10" style="padding: 5px; margin: 5px; width:100%; overflow:auto;" > <asp:TextBox ID="tbBody" runat="server" Text="" TextMode="MultiLine" Rows="30" Columns="118" ></asp:TextBox> <br /> <ajaxToolkit:HtmlEditorExtender ID="htmlEditorExtender1" runat="server" TargetControlID="tbBody" DisplaySourceTab="true" > <Toolbar> <ajaxToolkit:FontNameSelector /> <ajaxToolkit:HorizontalSeparator /> <ajaxToolkit:FontSizeSelector /> <ajaxToolkit:Bold /> <ajaxToolkit:Italic /> <ajaxToolkit:Underline /> <ajaxToolkit:StrikeThrough /> <ajaxToolkit:JustifyLeft /> <ajaxToolkit:JustifyCenter /> <ajaxToolkit:JustifyRight /> <ajaxToolkit:JustifyFull /> <ajaxToolkit:InsertOrderedList /> <ajaxToolkit:InsertUnorderedList /> <ajaxToolkit:RemoveFormat /> <ajaxToolkit:BackgroundColorSelector /> <ajaxToolkit:ForeColorSelector /> <ajaxToolkit:Indent /> <ajaxToolkit:Outdent /> <ajaxToolkit:InsertHorizontalRule /> <ajaxToolkit:HorizontalSeparator /> </Toolbar> </ajaxToolkit:HtmlEditorExtender>
页:
页面语言="C#" AutoEventWireup="false" CodeFile="Notification.aspx.cs" Inherits="RulesManagement_Notification" Title="Notification" MasterPageFile="~/MasterPage.master" ValidateRequest="false"
注册 Assembly="AjaxControlToolkit" 命名空间="AjaxControlToolkit" TagPrefix="ajaxToolkit"
CS:
保存方法(将文本作为参数传递到数据库时):
SqlParameter prmBody = new SqlParameter("@BODY", SqlDbType.NVarChar, -1); prmBody.Value = tbbody.Text;sqlSaveNotif.Parameters.Add(prmBody);
据我所知,文本框的实际文本正在被此 HTMLEE 的某种奇怪行为所改变,但仅限于 IE。我愿意使用任何其他控件,这些控件将为我提供与此 HTMLEE 相同的功能。我已经尝试过FreeTextBox控件,但我不能让它在 IE 中工作,它只能在 Chrome 中工作:)。在这种情况下,是否有任何开箱即用的控件(html 或 asp.net)可以帮助我?如果没有,我怎样才能使 Ajax 的 HTMLee 控件在 IE 中正常工作?