Moving Viewstate Bottom Of Page in Asp.net
Most of the time we need to make our website search engine friendly for the better monetizing our site and for moving our site to top of the search result on search engine, for that we need to follow some of the rules provided by search engine and one of them is to move your page viewstate from head to bottom of the page for getting better search engine spidering.
Below is the code for moving hidden fields from page head to page bottom, there is two method for doing this task one for moving all hidden fields and another for moving specific hidden fields to the page bottom just pass the name of hidden fields as the argument of the method.
Below is the code for moving hidden fields from page head to page bottom, there is two method for doing this task one for moving all hidden fields and another for moving specific hidden fields to the page bottom just pass the name of hidden fields as the argument of the method.
For moving specific hidden fields (ViewState) to bottom just pass the name of hidden fields.
protected override void Render(HtmlTextWriter writer)
html =
MoveSpecificHiddenFieldsToBottom(html, "__VIEWSTATE",
"__EVENTTARGET", "__EVENTARGUMENT");
{
StringWriter
responceSW = new StringWriter();
HtmlTextWriter
responceHTW = new HtmlTextWriter(responceSW);
base.Render(responceHTW);
string html
= responceSW.ToString();
writer.Write(html);
}
private string MoveSpecificHiddenFieldsToBottom(string html, params string[] name)
{
StringBuilder
sbPattern = new StringBuilder();
StringBuilder
sbFounded = new StringBuilder();
foreach (string nm in name)
sbPattern.Append("<input.*.name=\"" + nm + "\".*/*>|<input.*.name=\""
+ nm + "\"*></input>|");
MatchCollection
mc = Regex.Matches(html,
sbPattern.ToString().Trim('|'), RegexOptions.IgnoreCase & RegexOptions.IgnorePatternWhitespace);
foreach (Match m in mc)
{
sbFounded.AppendLine(m.Value);
html = html.Replace(m.Value, string.Empty);
}
return
html.Replace("</form>",
sbFounded.ToString() + "</form>");
}
For moving all hidden fields (ViewState) to bottom.
protected override void Render(HtmlTextWriter writer)
{
StringWriter responceSW = new StringWriter();
HtmlTextWriter responceHTW = new HtmlTextWriter(responceSW);
base.Render(responceHTW);
string html = responceSW.ToString();
html = MoveAllHiddenFieldsToBottom(html);
writer.Write(html);
}
private string MoveAllHiddenFieldsToBottom(string html)
{
string
sPattern = "<input
name=\"hidden\".*/*>|<input
type=\"hidden\".*></input>";
MatchCollection
mc = Regex.Matches(html, sPattern, RegexOptions.IgnoreCase & RegexOptions.IgnorePatternWhitespace);
StringBuilder
sbFounded = new StringBuilder();
foreach (Match m in mc)
{
sbFounded.AppendLine(m.Value);
html = html.Replace(m.Value, string.Empty);
}
return
html.Replace("</form>",
sbFounded.ToString() + "</form>");
}