📄 cspage.cs
字号:
//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
// Copyright (c) Telligent Systems Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
using System;
using System.IO;
using System.Web;
using System.Web.UI;
namespace CommunityServer.Components
{
/// <summary>
/// Default Page class for Community Server. Enables Action attribute on the forum to be overriden.
/// </summary>
public class CSPage : Page
{
public CSPage()
{
//
// TODO: Add constructor logic here
//
}
#region Render
/// <summary>
/// We override Render to swap out the default HtmlTextWriter for our own. Our own Writer's sole purpose is to
/// change the the action attribute on the form tag to the vanity Url. This way all postbacks occur on the vanity url
/// </summary>
/// <param name="writer"></param>
protected override void Render(HtmlTextWriter writer)
{
if (CSContext.Current.IsUrlReWritten)
{
if (writer is System.Web.UI.Html32TextWriter)
{
writer = new FormFixerHtml32TextWriter(writer.InnerWriter);
}
else
{
writer = new FormFixerHtmlTextWriter(writer.InnerWriter);
}
}
base.Render(writer);
}
#endregion
}
#region FormFixers
#region FormFixerHtml32TextWriter
internal class FormFixerHtml32TextWriter : System.Web.UI.Html32TextWriter
{
private string _url;
internal FormFixerHtml32TextWriter(TextWriter writer):base(writer)
{
_url = CSContext.Current.RawUrl;
}
public override void WriteAttribute(string name, string value, bool encode)
{
if (_url != null && string.Compare(name, "action", true) == 0)
{
value = _url;
}
base.WriteAttribute(name, value, encode);
}
}
#endregion
#region FormFixerHtmlTextWriter
internal class FormFixerHtmlTextWriter : System.Web.UI.HtmlTextWriter
{
private string _url;
internal FormFixerHtmlTextWriter(TextWriter writer):base(writer)
{
_url = CSContext.Current.RawUrl;
}
public override void WriteAttribute(string name, string value, bool encode)
{
if (_url != null && string.Compare(name, "action", true) == 0)
{
value = _url;
}
base.WriteAttribute(name, value, encode);
}
}
#endregion
#endregion
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -