我目前正在 ASP.NET 中编写 ContentManager。我有一个预览按钮,它使用 jQuery 将表单数据发布到新窗口并显示页面的外观而不将其保存到数据库并影响实时站点。虽然让 ASP.NET 直接发布到我尝试预览的页面有点麻烦,但我终于使用一系列 jQuery 代码解决了所有问题。它工作得很好,我使用 Request.Form 将所有帖子值加载到页面中并将它们显示在页面上。不幸的是,由于某种原因,我使用的 Telerik RadEditor 向我发布了它们在 C# Page_Load 事件中分配的值,并且没有反映我所做的文本更改。如果有人可以帮助我,那就太好了。
function showPreview()
{
url = "<%= (SiteManager.GetSite()).Url + this.Filename %>?preview=true";
var specs = "width=1010,height=700,location=0,resizeable=1,status=1,scrollbars=1";
window.open(url, 'PagePreview', specs).moveTo(25, 25);
$("#__VIEWSTATE").remove();
$("#__EVENTTARGET").remove();
$("#__EVENTARGUMENT").remove();
$("#aspnetForm").removeAttr("action");
$("#aspnetForm").attr("target","PagePreview");
$("#aspnetForm").attr("action", url);
$("#aspnetForm").submit();
}
这是我从 tererik RADEDITOR 收到的所有帖子数据::
[ctl00_MainContentPlaceHolder_SideContentRadEditor_dialogOpener_Window_ClientState] => [ctl00_MainContentPlaceHolder_SideContentRadEditor_dialogOpener_ClientState] => [ctl00$MainContentPlaceHolder$SideContentRadEditor] => [ctl00_MainContentPlaceHolder_SideContentRadEditor_ClientState] => [ctl00_MainContentPlaceHolder_ContentRadEditor_dialogOpener_Window_ClientState] => [ctl00_MainContentPlaceHolder_ContentRadEditor_dialogOpener_ClientState] => [ctl00$MainContentPlaceHolder$ContentRadEditor] => %3cp%3eTestPageContent%3c/p%3e
这是文本编辑器的 html 值(如上所示)%3cp%3eTestPageContent%3c/p%3e 这是在 Page_Load 事件期间加载的 RadEditor 中的值。
我将值更改为“测试”。但它不是通过 POST 请求发送的,它发送的是页面加载中加载的内容。