我在 EDIT MODE 的 DetailView 中使用 TinyMCE。
我想知道是否有解决方案可以防止Request Validation触发错误
不使用 <%@ Page validateRequest="false" %>
对于我的页面。
目前我发现的唯一方法是使用选项对 TinyMCE 使用的 TextBox 进行编码:“xml”
tinyMCE.init({
encoding: "xml",
这样Request Validation不会触发错误,而是在读取TextBox中的数据时将结果编码。 我还尝试使用此代码在 PageLoad 上解码 TextBox 的内容
myTextBox.Text = HttpUtility.HtmlDecode(myTextBox.Text)
但结果并不像预期的那样,所以我可以想象它只是编码文本。
有什么想法吗?谢谢
更新
我找到了解决问题的方法。 我在 DetailsView 的 _DataBound 事件中添加了这段代码
TextBox myContentAuthor = (TextBox)uxAuthorListDetailsView.FindControl("uxContentAuthorInput");
myContentAuthor.Text = HttpUtility.HtmlDecode(myContentAuthor.Text);
因此,在 DataBound 事件中,(甚至在回发时也应该有效)内容将为文本框 tinymce 解码。
这里应该如何工作:
01 - 使用函数编码在文本框中插入 TinyMCE ESCAPE 数据:“xml”,
02 - 数据已存储为 ESCAPED
03 - 读取数据并将其内容添加到文本框,其中应用 TinyMCE 在 DATABOUND EVENT 中用于 DetailView 和 HttpUtility.HtmlDecode(因此它看起来已解码)
04 - 您可以在编辑模式下修改文本框中的内容。在回发时,TinyMCE 将使用编码再次编码:“xml”等等
希望大家能帮到别人。
但是请给我您对此解决方案的评论谢谢!也许你想出了更优雅的解决方案! :-)
最佳答案
我个人会简单地关闭此页面的请求验证。
除非您预见到跨站点请求等问题,否则无需在其假定的“保护”下庇护
关于c# - 详细信息 View 和与 TinyMCE 的集成 <%@ Page validateRequest ="false"%>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4499196/