我在编辑模式的 DetailView中使用TinyMCE 。
我想知道是否存在可以阻止请求验证触发错误的解决方案
不使用 <%@ Page validateRequest="false" %>
访问我的网页。
我目前发现的唯一方法是使用选项编码TinyMCE使用的TextBox:“xml”
tinyMCE.init({
encoding: "xml",
这样,请求验证不会触发错误,但在读取TextBox中的数据时,结果是编码。 我还尝试使用此代码
在PageLoad上解码TextBox的内容myTextBox.Text = HttpUtility.HtmlDecode(myTextBox.Text)
但结果并不像预期的那样,所以我只能将其想象成编码文本。
任何想法?感谢
更新
我找到了解决问题的方法。 我在_DataBound事件中为DetailsView添加了此代码
TextBox myContentAuthor = (TextBox)uxAuthorListDetailsView.FindControl("uxContentAuthorInput");
myContentAuthor.Text = HttpUtility.HtmlDecode(myContentAuthor.Text);
所以在DataBound事件上,(甚至应该在回发后工作)内容将是文本框的解码内容。
这里应该如何运作:
01 - 使用函数编码在文本框中插入TinyMCE ESCAPE数据:“xml”,
02 - 数据已存储为ESCAPED
03 - 读取数据并将其内容添加到TextBox,其中应用TinyMCE在DATABOUND EVENT中使用DetailView和HttpUtility.HtmlDecode(因此它将看起来已解码)
04 - 您可以在编辑模式下修改文本框中的内容。在帖子后面,TinyMCE将使用编码再次编码:“xml”依此类推
希望大家可以帮助其他人。
但请在此解答我的评论,谢谢! Mybe你想出更优雅的解决方案! : - )
答案 0 :(得分:0)
我个人只是关闭此页面的请求验证。
除非您有跨网站请求等问题,否则不需要在其假设的“保护”下进行庇护
答案 1 :(得分:0)
这也可以通过在页面回发之前从数据中删除html标记来完成。
答案 2 :(得分:0)
问题是:
当PostBack到达时,TinyMCE重新编码textarea的内容。
要解决此问题,解决方案比解释更容易...
在Page_Load
中,您必须测试它是否为PostBack - &gt;您可以将myTextBox.Text
替换为HttpUtility.HtmlDecode(myTextBox.Text)
我试试,这是工作......