ControlAdapter for ASP SiteMapPath

Today i faced a small issue related Breadcrumb. I’m using asp:SiteMapPath to show Breadcrumb. It works fine. But look and feel is little boring and i want it convert to bootstrap style. I tried to customize the design with diffrent templates properties, but always it shows surround a tag and bootstrap not working.
after some googling i found a solution ; add a Control Adaper for this.

Now it working fine and looks good.

First add a class for this ControlAdapter SiteMapPathControlAdapter.

 public class SiteMapPathControlAdapter : WebControlAdapter
    {
 public virtual string LinkCssClass
        { get; set; }
        protected override void RenderBeginTag(HtmlTextWriter writer)
        {
            writer.WriteLine();
            writer.WriteBeginTag("div");

            writer.WriteAttribute("class", ((System.Web.UI.WebControls.SiteMapPath)(Control)).CssClass);
            writer.Write(HtmlTextWriter.TagRightChar);
        }
        protected override void RenderEndTag(HtmlTextWriter writer)
        {
            writer.WriteEndTag("div");
            writer.WriteLine();
        }
        protected override void RenderContents(HtmlTextWriter writer)
        {
            writer.Indent++;
            SiteMapPath item = (SiteMapPath)Control;
            SiteMapProvider Provider = ((System.Web.UI.WebControls.SiteMapPath)(Control)).Provider;
            SiteMapNodeCollection collection = new SiteMapNodeCollection();
            SiteMapNode node = Provider.CurrentNode;
            if (node != null)
            {

                collection.Add(node);
                while (node != Provider.CurrentNode.RootNode)
                {
                    node = node.ParentNode;
                    collection.Add(node);
                }

            }
            BuildItems(collection, true, writer);
            writer.Indent--;
            writer.WriteLine();
        }
        private void BuildItems(SiteMapNodeCollection items, bool isRoot, HtmlTextWriter writer)
        {
            if (items.Count > 0)
            {
                writer.WriteLine();

                writer.Indent++;
                for (int i = items.Count - 1; i > -1; i--)
                {
                    BuildItem(items[i], writer);
                }
                writer.Indent--;
                writer.WriteLine();
            }
        }
        private void BuildItem(SiteMapNode item, HtmlTextWriter writer)
        {
            if ((item != null) && (writer != null))
            {
                if (item.Url.Length > 0)
                {
                    writer.WriteLine();
                    writer.WriteBeginTag("a");
                    writer.WriteAttribute("href", Page.ResolveUrl(item.Url));
                    string linkCSS = (Control.Attributes["LinkCssClass"] ?? "").ToString();
                    writer.WriteAttribute("class", linkCSS);
                    writer.Write(HtmlTextWriter.TagRightChar);
                    writer.Write(item.Title);
                    writer.WriteEndTag("a");
                    writer.WriteLine();

                }
            }
        }
   }

Second add a browser file to link this adapter :

<browsers>
  <browser refID="Default">
    <controlAdapters>
       <adapter controlType="System.Web.UI.WebControls.SiteMapPath" adapterType="CSharpSampleWebApps.SiteMapPathControlAdapter" />
    </controlAdapters>
  </browser>
</browsers>

and my aspx page

<div>
        <asp:SiteMapPath runat="server" ID="SiteMapPath1" CssClass="btn-group btn-breadcrumb"
            LinkCssClass="btn btn-success">
        </asp:SiteMapPath>
    </div>

Now rendering HTML like :

    <div>
        
<div class="btn-group btn-breadcrumb">

		<a href="/default.aspx" class="btn btn-success">Home</a>

		<a href="/Services.aspx" class="btn btn-success">Services</a>

		<a href="/Training.aspx" class="btn btn-success">Training</a>


</div>

    </div>

Request URL in ASP.Net

Suppose i am request a page http://localhost:57089/test/WebForm1.aspx?id=10 then what are the request property values in server side ? Many of the cases we need part of a request URL. Maybe Some times Port No or File Path or Exact file Name etc.

I just write the values in server side Request Property.

// Accessing http://localhost:57089/test/WebForm1.aspx?id=10
Response.Write( Request.RawUrl);
// /test/WebForm1.aspx?id=10
Response.Write( Request.Url.ToString());
// http://localhost:57089/test/WebForm1.aspx?id=10
Response.Write(Request.Url.AbsolutePath);
// /test/WebForm1.aspx
Response.Write(Request.Url.AbsoluteUri);
// http://localhost:57089/test/WebForm1.aspx?id=10
Response.Write("
" + Request.Url.Authority);
// localhost:57089
Response.Write(Request.Url.DnsSafeHost);
// localhost
Response.Write( Request.Url.Host);
// localhost
Response.Write(Request.Url.LocalPath);
// /test/WebForm1.aspx
Response.Write( Request.Url.OriginalString);
// http://localhost:57089/test/WebForm1.aspx?id=10
Response.Write( Request.Url.PathAndQuery);
// /test/WebForm1.aspx?id=10
Response.Write(Request.Url.Port.ToString());
// 57089
Response.Write(Request.Url.Query);
// ?id=10
Response.Write( Request.Url.Scheme);
// http
foreach (var Segment in Request.Url.Segments)
{
Response.Write("
" + Segment );
}
// [0] /
// [1] test/
// [2] WebForm1.aspx
Response.Write("
" + Request.QueryString);
// id=10
Response.Write( Request.PhysicalPath);
// C:\Users\user\documents\visual studio 2010\Projects\WebApplication3\WebApplication3\test\WebForm1.aspx
Response.Write( Request.PhysicalApplicationPath);
// C:\Users\user\documents\visual studio 2010\Projects\WebApplication3\WebApplication3\
Response.Write(Request.Path);
// /test/WebForm1.aspx
Response.Write(Request.ApplicationPath);
// /

 Response.Write("<br/>" + System.IO.Path.GetFileName(Request.Url.LocalPath));
//   WebForm1.aspx
Musthaan
Musthaan

Zen Coding

Zen Coding is an editor plugin for high-speed HTML, XML, XSL (or any other structured code format) coding and editing. The core of this plugin is a powerful abbreviation engine which allows you to expand expressions—similar to CSS selectors—into HTML code. For example:

div#page>div.logo+ul#navigation>li*5>a
…can be expanded into:

<div id="page">
        <div class="logo"></div>
        <ul id="navigation">
                <li><a href=""></a></li>
                <li><a href=""></a></li>
                <li><a href=""></a></li>
                <li><a href=""></a></li>
                <li><a href=""></a></li>
        </ul>
</div>

Third-party supported editors

These plugins are using official Zen Coding engine and developed by third-party developers. Thus, no guarantee that they support all latest ZC features.

 

CheatSheets

Cheat sheets for Zen Coding syntax and abbreviations

Syntax


Child: >

nav>ul>li


            <nav>
            <ul>
            <li></li>
            </ul>
            </nav>
          

div+p+bq


            <div></div>
            <p></p>
            <blockquote></blockquote>
          

div+div>p>span+em^bq


            <div></div>
            <div>
            <p><span></span><em></em></p>
            <blockquote></blockquote>
            </div>
          

div+div>p>span+em^^bq


            <div></div>
            <div>
            <p><span></span><em></em></p>
            </div>
            <blockquote></blockquote>
          

div>(header>ul>li*2>a)+footer>p


            <div>
            <header>
            <ul>
            <li><a href=""></a></li>
            <li><a href=""></a></li>
            </ul>
            </header>
            <footer>
            <p></p>
            </footer>
            </div>
          

(div>dl>(dt+dd)*3)+footer>p


            <div>
            <dl>
            <dt></dt>
            <dd></dd>
            <dt></dt>
            <dd></dd>
            <dt></dt>
            <dd></dd>
            </dl>
            </div>
            <footer>
            <p></p>
            </footer>
          

ul>li*5


            <ul>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            </ul>
          

ul>li.item$*5


            <ul>
            <li class="item1"></li>
            <li class="item2"></li>
            <li class="item3"></li>
            <li class="item4"></li>
            <li class="item5"></li>
            </ul>
          

h$[title=item$]{Header $}*3


            <h1 title="item1">Header 1</h1>
            <h2 title="item2">Header 2</h2>
            <h3 title="item3">Header 3</h3>
          

ul>li.item$$$*5


            <ul>
            <li class="item001"></li>
            <li class="item002"></li>
            <li class="item003"></li>
            <li class="item004"></li>
            <li class="item005"></li>
            </ul>
          

ul>li.item$@-*5


            <ul>
            <li class="item5"></li>
            <li class="item4"></li>
            <li class="item3"></li>
            <li class="item2"></li>
            <li class="item1"></li>
            </ul>
          

ul>li.item$@3*5


            <ul>
            <li class="item3"></li>
            <li class="item4"></li>
            <li class="item5"></li>
            <li class="item6"></li>
            <li class="item7"></li>
            </ul>
          

#header

<div id="header"></div>

.title

<div class="title"></div>

form#search.wide

<form id="search" class="wide"></form>

p.class1.class2.class3

<p class="class1 class2 class3"></p>

p[title=”Hello world”]

<p title="Hello world"></p>

td[rowspan=2 colspan=3 title]

<td rowspan="2" colspan="3" title=""></td>

[a=’value1′ b=”value2″]

<div a="value1" b="value2"></div>

a{Click me}

<a href="">Click me</a>

p>{Click }+a{here}+{ to continue}

<p>Click <a href="">here</a> to continue</p>

.class

<div class="class"></div>

em>.class

<em><span class="class"></span></em>

ul>.class


            <ul>
            <li class="class"></li>
            </ul>
          

table>.row>.col


            <table>
            <tr class="row">
            <td class="col"></td>
            </tr>
            </table>
          

HTML


!


            Alias of html:5<!doctype html>
          <html lang="en">
          <head>
          <meta charset="UTF-8" />
          <title>Document</title>
          </head>
          <body>
          
          </body>
          </html>
        

a


          <a href=""></a>
        

a:link


          <a href="http://"></a>
        

a:mail


          <a href="mailto:"></a>
        

abbr


          <abbr title=""></abbr>
        

acronym


          <acronym title=""></acronym>
        

base


          <base href="" />
        

basefont

<basefont />

br

<br />

frame

<frame />

hr

<hr />

bdo


          <bdo dir=""></bdo>
        

bdo:r


          <bdo dir="rtl"></bdo>
        

bdo:l


          <bdo dir="ltr"></bdo>
        

col

<col />

link


          <link rel="stylesheet" href="" />
        

link:css


          <link rel="stylesheet" href="style.css" />
        

link:print


          <link rel="stylesheet" href="print.css" media="print" />
        

link:favicon


          <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
        

link:touch


          <link rel="apple-touch-icon" href="favicon.png" />
        

link:rss


          <link rel="alternate" type="application/rss+xml" title="RSS" href="rss.xml" />
        

link:atom


          <link rel="alternate" type="application/atom+xml" title="Atom" href="atom.xml" />
        

meta

<meta />

meta:utf

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />

meta:win

<meta http-equiv="Content-Type" content="text/html;charset=windows-1251" />

meta:vp


          <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
        

meta:compat


          <meta http-equiv="X-UA-Compatible" content="IE=7" />
        

style


          <style></style>
        

script


          <script></script>
        

script:src


          <script src=""></script>
        

img


          <img src="" alt="" />
        

iframe


          
        

embed


          
        

object


          
        

param


          <param name="" value="" />
        

map


          <map name=""></map>
        

area


          <area shape="" coords="" href="" alt="" />
        

area:d


          <area shape="default" href="" alt="" />
        

area:c


          <area shape="circle" coords="" href="" alt="" />
        

area:r


          <area shape="rect" coords="" href="" alt="" />
        

area:p


          <area shape="poly" coords="" href="" alt="" />
        

form


          <form action=""></form>
        

form:get


          <form action="" method="get"></form>
        

form:post


          <form action="" method="post"></form>
        

label


          <label for=""></label>
        

input


          <input type="text" />
        

inp


          <input type="text" name="" id="" />
        

input:hidden


            Alias of input[type=hidden name]<input type="hidden" name="" />
        

input:h


            Alias of input:hidden<input type="hidden" name="" />
        

input:text, input:t


            Alias of inp<input type="text" name="" id="" />
        

input:search


            Alias of inp[type=search]<input type="search" name="" id="" />
        

input:email


            Alias of inp[type=email]<input type="email" name="" id="" />
        

input:url


            Alias of inp[type=url]<input type="url" name="" id="" />
        

input:password


            Alias of inp[type=password]<input type="password" name="" id="" />
        

input:p


            Alias of input:password<input type="password" name="" id="" />
        

input:datetime


            Alias of inp[type=datetime]<input type="datetime" name="" id="" />
        

input:date


            Alias of inp[type=date]<input type="date" name="" id="" />
        

input:datetime-local


            Alias of inp[type=datetime-local]<input type="datetime-local" name="" id="" />
        

input:month


            Alias of inp[type=month]<input type="month" name="" id="" />
        

input:week


            Alias of inp[type=week]<input type="week" name="" id="" />
        

input:time


            Alias of inp[type=time]<input type="time" name="" id="" />
        

input:number


            Alias of inp[type=number]<input type="number" name="" id="" />
        

input:color


            Alias of inp[type=color]<input type="color" name="" id="" />
        

input:checkbox


            Alias of inp[type=checkbox]<input type="checkbox" name="" id="" />
        

input:c


            Alias of input:checkbox<input type="checkbox" name="" id="" />
        

input:radio


            Alias of inp[type=radio]<input type="radio" name="" id="" />
        

input:r


            Alias of input:radio<input type="radio" name="" id="" />
        

input:range


            Alias of inp[type=range]<input type="range" name="" id="" />
        

input:file


            Alias of inp[type=file]<input type="file" name="" id="" />
        

input:f


            Alias of input:file<input type="file" name="" id="" />
        

input:submit


          <input type="submit" value="" />
        

input:s


            Alias of input:submit<input type="submit" value="" />
        

input:image


          <input type="image" src="" alt="" />
        

input:i


            Alias of input:image<input type="image" src="" alt="" />
        

input:button


          <input type="button" value="" />
        

input:b


            Alias of input:button<input type="button" value="" />
        

isindex

<isindex />

input:reset


            Alias of input:button[type=reset]<input type="reset" value="" />
        

select


          <select name="" id=""></select>
        

option


          <option value=""></option>
        

textarea


          <textarea name="" id="" cols="30" rows="10"></textarea>
        

menu:context


            Alias of menu[type=context]><menu type="context"></menu>
        

menu:c


            Alias of menu:context<menu type="context"></menu>
        

menu:toolbar


            Alias of menu[type=toolbar]><menu type="toolbar"></menu>
        

menu:t


            Alias of menu:toolbar<menu type="toolbar"></menu>
        

video


          <video src=""></video>
        

audio


          <audio src=""></audio>
        

html:xml


          <html xmlns="http://www.w3.org/1999/xhtml"></html>
        

keygen

<keygen />

command

<command />

bq


            Alias of blockquote<blockquote></blockquote>
        

acr


            Alias of acronym<acronym title=""></acronym>
        

fig


            Alias of figure<figure></figure>
        

figc


            Alias of figcaption<figcaption></figcaption>
        

ifr


            Alias of iframe
        

emb


            Alias of embed
        

obj


            Alias of object
        

src


            Alias of source<source></source>
        

cap


            Alias of caption<caption></caption>
        

colg


            Alias of colgroup<colgroup></colgroup>
        

fst, fset


            Alias of fieldset<fieldset></fieldset>
        

btn


            Alias of button<button></button>
        

btn:b


            Alias of button[type=button]<button type="button"></button>
        

btn:r


            Alias of button[type=reset]<button type="reset"></button>
        

btn:s


            Alias of button[type=submit]<button type="submit"></button>
        

optg


            Alias of optgroup<optgroup></optgroup>
        

opt


            Alias of option<option value=""></option>
        

tarea


            Alias of textarea<textarea name="" id="" cols="30" rows="10"></textarea>
        

leg


            Alias of legend<legend></legend>
        

sect


            Alias of section<section></section>
        

art


            Alias of article<article></article>
        

hdr


            Alias of header<header></header>
        

ftr


            Alias of footer<footer></footer>
        

adr


            Alias of address<address></address>
        

dlg


            Alias of dialog<dialog></dialog>
        

str


            Alias of strong<strong></strong>
        

prog


            Alias of progress<progress></progress>
        

datag


            Alias of datagrid<datagrid></datagrid>
        

datal


            Alias of datalist<datalist></datalist>
        

kg


            Alias of keygen<keygen />
        

out


            Alias of output<output></output>
        

det


            Alias of details<details></details>
        

cmd


            Alias of command<command />
        

doc


            Alias of html>(head>meta[charset=UTF-8]+title{${1:Document}})+body<html>
          <head>
          <meta charset="UTF-8" />
          <title>Document</title>
          </head>
          <body>
          
          </body>
          </html>
        

doc4


            Alias of html>(head>meta[http-equiv="Content-Type" content="text/html;charset=${charset}"]+title{${1:Document}})+body<html>
          <head>
          <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
          <title>Document</title>
          </head>
          <body>
          
          </body>
          </html>
        

html:4t


            Alias of !!!4t+doc4[lang=${lang}]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
          <html lang="en">
          <head>
          <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
          <title>Document</title>
          </head>
          <body>
          
          </body>
          </html>
        

html:4s


            Alias of !!!4s+doc4[lang=${lang}]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
          <html lang="en">
          <head>
          <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
          <title>Document</title>
          </head>
          <body>
          
          </body>
          </html>
        

html:xt


            Alias of !!!xt+doc4[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
          <head>
          <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
          <title>Document</title>
          </head>
          <body>
          
          </body>
          </html>
        

html:xs


            Alias of !!!xs+doc4[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
          <head>
          <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
          <title>Document</title>
          </head>
          <body>
          
          </body>
          </html>
        

html:xxs


            Alias of !!!xxs+doc4[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
          <head>
          <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
          <title>Document</title>
          </head>
          <body>
          
          </body>
          </html>
        

html:5


            Alias of !!!+doc[lang=${lang}]<!doctype html>
          <html lang="en">
          <head>
          <meta charset="UTF-8" />
          <title>Document</title>
          </head>
          <body>
          
          </body>
          </html>
        

ol+


            Alias of ol>li<ol>
          <li></li>
          </ol>
        

ul+


            Alias of ul>li<ul>
          <li></li>
          </ul>
        

dl+


            Alias of dl>dt+dd<dl>
          <dt></dt>
          <dd></dd>
          </dl>
        

map+


            Alias of map>area<map name="">
          <area shape="" coords="" href="" alt="" />
          </map>
        

table+


            Alias of table>tr>td<table>
          <tr>
          <td></td>
          </tr>
          </table>
        

colgroup+, colg+


            Alias of colgroup>col<colgroup>
          <col />
          </colgroup>
        

tr+


            Alias of tr>td<tr>
          <td></td>
          </tr>
        

select+


            Alias of select>option<select name="" id="">
          <option value=""></option>
          </select>
        

optgroup+, optg+


            Alias of optgroup>option<optgroup>
          <option value=""></option>
          </optgroup>
        

!!!

<!doctype html>

!!!4t

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

!!!4s

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

!!!xt

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

!!!xs

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

!!!xxs

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

c


          <!-- ${child} -->
        

cc:ie6


          <!--[if lte IE 6]>
          ${child}
          <![endif]-->
        

cc:ie


          <!--[if IE]>
          ${child}
          <![endif]-->
        

cc:noie


          <!--[if !IE]><!-->
          ${child}
          <!--<![endif]-->
        

CSS


Visual Formatting


pos


            position:relative;
          

pos:s

position:static;

pos:a

position:absolute;

pos:r

position:relative;

pos:f

position:fixed;

t


            top:;
          

t:a

top:auto;

r


            right:;
          

r:a

right:auto;

b


            bottom:;
          

b:a

bottom:auto;

l


            left:;
          

l:a

left:auto;

z


            z-index:;
          

z:a

z-index:auto;

fl


            float:left;
          

fl:n

float:none;

fl:l

float:left;

fl:r

float:right;

cl


            clear:both;
          

cl:n

clear:none;

cl:l

clear:left;

cl:r

clear:right;

cl:b

clear:both;

d


            display:block;
          

d:n

display:none;

d:b

display:block;

d:i

display:inline;

d:ib

display:inline-block;

d:li

display:list-item;

d:ri

display:run-in;

d:cp

display:compact;

d:tb

display:table;

d:itb

display:inline-table;

d:tbcp

display:table-caption;

d:tbcl

display:table-column;

d:tbclg

display:table-column-group;

d:tbhg

display:table-header-group;

d:tbfg

display:table-footer-group;

d:tbr

display:table-row;

d:tbrg

display:table-row-group;

d:tbc

display:table-cell;

d:rb

display:ruby;

d:rbb

display:ruby-base;

d:rbbg

display:ruby-base-group;

d:rbt

display:ruby-text;

d:rbtg

display:ruby-text-group;

v


            visibility:hidden;
          

v:v

visibility:visible;

v:h

visibility:hidden;

v:c

visibility:collapse;

ov


            overflow:hidden;
          

ov:v

overflow:visible;

ov:h

overflow:hidden;

ov:s

overflow:scroll;

ov:a

overflow:auto;

ovx


            overflow-x:hidden;
          

ovx:v

overflow-x:visible;

ovx:h

overflow-x:hidden;

ovx:s

overflow-x:scroll;

ovx:a

overflow-x:auto;

ovy


            overflow-y:hidden;
          

ovy:v

overflow-y:visible;

ovy:h

overflow-y:hidden;

ovy:s

overflow-y:scroll;

ovy:a

overflow-y:auto;

ovs


            overflow-style:scrollbar;
          

ovs:a

overflow-style:auto;

ovs:s

overflow-style:scrollbar;

ovs:p

overflow-style:panner;

ovs:m

overflow-style:move;

ovs:mq

overflow-style:marquee;

zoo, zm

zoom:1;

cp


            clip:;
          

cp:a

clip:auto;

cp:r


            clip:rect(toprightbottomleft);
          

rsz


            resize:;
          

rsz:n

resize:none;

rsz:b

resize:both;

rsz:h

resize:horizontal;

rsz:v

resize:vertical;

cur

cursor:${pointer};

cur:a

cursor:auto;

cur:d

cursor:default;

cur:c

cursor:crosshair;

cur:ha

cursor:hand;

cur:he

cursor:help;

cur:m

cursor:move;

cur:p

cursor:pointer;

cur:t

cursor:text;

m


            margin:;
          

m:a

margin:auto;

mt


            margin-top:;
          

mt:a

margin-top:auto;

mr


            margin-right:;
          

mr:a

margin-right:auto;

mb


            margin-bottom:;
          

mb:a

margin-bottom:auto;

ml


            margin-left:;
          

ml:a

margin-left:auto;

p


            padding:;
          

pt


            padding-top:;
          

pr


            padding-right:;
          

pb


            padding-bottom:;
          

pl


            padding-left:;
          

bxz


            box-sizing:border-box;
          

bxz:cb

box-sizing:content-box;

bxz:bb

box-sizing:border-box;

bxsh


            box-shadow:inset hoffvoffblurcolor;
          

bxsh:r


            box-shadow:inset hoffvoffblurspread rgb(0, 0, 0);
          

bxsh:ra


            box-shadow:inset hvblurspread rgba(0, 0, 0, .5);
          

bxsh:n

box-shadow:none;

w


            width:;
          

w:a

width:auto;

h


            height:;
          

h:a

height:auto;

maw


            max-width:;
          

maw:n

max-width:none;

mah


            max-height:;
          

mah:n

max-height:none;

miw


            min-width:;
          

mih


            min-height:;
          

f


            font:;
          

f+


            font:1emArial,sans-serif;
          

fw


            font-weight:;
          

fw:n

font-weight:normal;

fw:b

font-weight:bold;

fw:br

font-weight:bolder;

fw:lr

font-weight:lighter;

fs

font-style:${italic};

fs:n

font-style:normal;

fs:i

font-style:italic;

fs:o

font-style:oblique;

fv


            font-variant:;
          

fv:n

font-variant:normal;

fv:sc

font-variant:small-caps;

fz


            font-size:;
          

fza


            font-size-adjust:;
          

fza:n

font-size-adjust:none;

ff


            font-family:;
          

ff:s

font-family:serif;

ff:ss

font-family:sans-serif;

ff:c

font-family:cursive;

ff:f

font-family:fantasy;

ff:m

font-family:monospace;

ff:a

font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;

fef


            font-effect:;
          

fef:n

font-effect:none;

fef:eg

font-effect:engrave;

fef:eb

font-effect:emboss;

fef:o

font-effect:outline;

fem


            font-emphasize:;
          

femp


            font-emphasize-position:;
          

femp:b

font-emphasize-position:before;

femp:a

font-emphasize-position:after;

fems


            font-emphasize-style:;
          

fems:n

font-emphasize-style:none;

fems:ac

font-emphasize-style:accent;

fems:dt

font-emphasize-style:dot;

fems:c

font-emphasize-style:circle;

fems:ds

font-emphasize-style:disc;

fsm


            font-smooth:;
          

fsm:a

font-smooth:auto;

fsm:n

font-smooth:never;

fsm:aw

font-smooth:always;

fst


            font-stretch:;
          

fst:n

font-stretch:normal;

fst:uc

font-stretch:ultra-condensed;

fst:ec

font-stretch:extra-condensed;

fst:c

font-stretch:condensed;

fst:sc

font-stretch:semi-condensed;

fst:se

font-stretch:semi-expanded;

fst:e

font-stretch:expanded;

fst:ee

font-stretch:extra-expanded;

fst:ue

font-stretch:ultra-expanded;

va


            vertical-align:top;
          

va:sup

vertical-align:super;

va:t

vertical-align:top;

va:tt

vertical-align:text-top;

va:m

vertical-align:middle;

va:bl

vertical-align:baseline;

va:b

vertical-align:bottom;

va:tb

vertical-align:text-bottom;

va:sub

vertical-align:sub;

ta


            text-align:left;
          

ta:l

text-align:left;

ta:c

text-align:center;

ta:r

text-align:right;

ta:j

text-align:justify;

ta-lst


            text-align-last:;
          

tal:a

text-align-last:auto;

tal:l

text-align-last:left;

tal:c

text-align-last:center;

tal:r

text-align-last:right;

td


            text-decoration:none;
          

td:n

text-decoration:none;

td:u

text-decoration:underline;

td:o

text-decoration:overline;

td:l

text-decoration:line-through;

te


            text-emphasis:;
          

te:n

text-emphasis:none;

te:ac

text-emphasis:accent;

te:dt

text-emphasis:dot;

te:c

text-emphasis:circle;

te:ds

text-emphasis:disc;

te:b

text-emphasis:before;

te:a

text-emphasis:after;

th


            text-height:;
          

th:a

text-height:auto;

th:f

text-height:font-size;

th:t

text-height:text-size;

th:m

text-height:max-size;

ti


            text-indent:;
          

ti:-

text-indent:-9999px;

tj


            text-justify:;
          

tj:a

text-justify:auto;

tj:iw

text-justify:inter-word;

tj:ii

text-justify:inter-ideograph;

tj:ic

text-justify:inter-cluster;

tj:d

text-justify:distribute;

tj:k

text-justify:kashida;

tj:t

text-justify:tibetan;

to


            text-outline:;
          

to+


            text-outline:00#000;
          

to:n

text-outline:none;

tr


            text-replace:;
          

tr:n

text-replace:none;

tt


            text-transform:uppercase;
          

tt:n

text-transform:none;

tt:c

text-transform:capitalize;

tt:u

text-transform:uppercase;

tt:l

text-transform:lowercase;

tw


            text-wrap:;
          

tw:n

text-wrap:normal;

tw:no

text-wrap:none;

tw:u

text-wrap:unrestricted;

tw:s

text-wrap:suppress;

tsh


            text-shadow:hoffvoffblur#000;
          

tsh:r


            text-shadow:hvblur rgb(0, 0, 0);
          

tsh:ra


            text-shadow:hvblur rgba(0, 0, 0, .5);
          

tsh+


            text-shadow:000#000;
          

tsh:n

text-shadow:none;

lh


            line-height:;
          

lts


            letter-spacing:;
          

whs


            white-space:;
          

whs:n

white-space:normal;

whs:p

white-space:pre;

whs:nw

white-space:nowrap;

whs:pw

white-space:pre-wrap;

whs:pl

white-space:pre-line;

whsc


            white-space-collapse:;
          

whsc:n

white-space-collapse:normal;

whsc:k

white-space-collapse:keep-all;

whsc:l

white-space-collapse:loose;

whsc:bs

white-space-collapse:break-strict;

whsc:ba

white-space-collapse:break-all;

wob


            word-break:;
          

wob:n

word-break:normal;

wob:k

word-break:keep-all;

wob:l

word-break:loose;

wob:bs

word-break:break-strict;

wob:ba

word-break:break-all;

wos


            word-spacing:;
          

wow


            word-wrap:;
          

wow:nm

word-wrap:normal;

wow:n

word-wrap:none;

wow:u

word-wrap:unrestricted;

wow:s

word-wrap:suppress;

wow:b

word-wrap:break-word;

bg


            background:;
          

bg+


            background:#fff url() 00no-repeat;
          

bg:n

background:none;

bgc


            background-color:#fff;
          

bgc:t

background-color:transparent;

bgi


            background-image:url();
          

bgi:n

background-image:none;

bgr


            background-repeat:;
          

bgr:n

background-repeat:no-repeat;

bgr:x

background-repeat:repeat-x;

bgr:y

background-repeat:repeat-y;

bgr:sp

background-repeat:space;

bgr:rd

background-repeat:round;

bga


            background-attachment:;
          

bga:f

background-attachment:fixed;

bga:s

background-attachment:scroll;

bgp


            background-position:00;
          

bgpx


            background-position-x:;
          

bgpy


            background-position-y:;
          

bgbk


            background-break:;
          

bgbk:bb

background-break:bounding-box;

bgbk:eb

background-break:each-box;

bgbk:c

background-break:continuous;

bgcp


            background-clip:padding-box;
          

bgcp:bb

background-clip:border-box;

bgcp:pb

background-clip:padding-box;

bgcp:cb

background-clip:content-box;

bgcp:nc

background-clip:no-clip;

bgo


            background-origin:;
          

bgo:pb

background-origin:padding-box;

bgo:bb

background-origin:border-box;

bgo:cb

background-origin:content-box;

bgsz


            background-size:;
          

bgsz:a

background-size:auto;

bgsz:ct

background-size:contain;

bgsz:cv

background-size:cover;

c


            color:#000;
          

c:r


            color:rgb(0, 0, 0);
          

c:ra


            color:rgba(0, 0, 0, .5);
          

op


            opacity:;
          

cnt


            content:'';
          

cnt:n, ct:n

content:normal;

cnt:oq, ct:oq

content:open-quote;

cnt:noq, ct:noq

content:no-open-quote;

cnt:cq, ct:cq

content:close-quote;

cnt:ncq, ct:ncq

content:no-close-quote;

cnt:a, ct:a


            content:attr();
          

cnt:c, ct:c


            content:counter();
          

cnt:cs, ct:cs


            content:counters();
          

ct


            content:;
          

q


            quotes:;
          

q:n

quotes:none;

q:ru

quotes:'\00AB' '\00BB' '\201E' '\201C';

q:en

quotes:'\201C' '\201D' '\2018' '\2019';

coi


            counter-increment:;
          

cor


            counter-reset:;
          

ol


            outline:;
          

ol:n

outline:none;

olo


            outline-offset:;
          

olw


            outline-width:;
          

ols


            outline-style:;
          

olc


            outline-color:#000;
          

olc:i

outline-color:invert;

tbl


            table-layout:;
          

tbl:a

table-layout:auto;

tbl:f

table-layout:fixed;

cps


            caption-side:;
          

cps:t

caption-side:top;

cps:b

caption-side:bottom;

ec


            empty-cells:;
          

ec:s

empty-cells:show;

ec:h

empty-cells:hide;

bd


            border:;
          

bd+


            border:1pxsolid#000;
          

bd:n

border:none;

bdbk


            border-break:close;
          

bdbk:c

border-break:close;

bdcl


            border-collapse:;
          

bdcl:c

border-collapse:collapse;

bdcl:s

border-collapse:separate;

bdc


            border-color:#000;
          

bdc:t

border-color:transparent;

bdi


            border-image:url();
          

bdi:n

border-image:none;

bdti


            border-top-image:url();
          

bdti:n

border-top-image:none;

bdri


            border-right-image:url();
          

bdri:n

border-right-image:none;

bdbi


            border-bottom-image:url();
          

bdbi:n

border-bottom-image:none;

bdli


            border-left-image:url();
          

bdli:n

border-left-image:none;

bdci


            border-corner-image:url();
          

bdci:n

border-corner-image:none;

bdci:c

border-corner-image:continue;

bdtli


            border-top-left-image:url();
          

bdtli:n

border-top-left-image:none;

bdtli:c

border-top-left-image:continue;

bdtri


            border-top-right-image:url();
          

bdtri:n

border-top-right-image:none;

bdtri:c

border-top-right-image:continue;

bdbri


            border-bottom-right-image:url();
          

bdbri:n

border-bottom-right-image:none;

bdbri:c

border-bottom-right-image:continue;

bdbli


            border-bottom-left-image:url();
          

bdbli:n

border-bottom-left-image:none;

bdbli:c

border-bottom-left-image:continue;

bdf


            border-fit:repeat;
          

bdf:c

border-fit:clip;

bdf:r

border-fit:repeat;

bdf:sc

border-fit:scale;

bdf:st

border-fit:stretch;

bdf:ow

border-fit:overwrite;

bdf:of

border-fit:overflow;

bdf:sp

border-fit:space;

bdlen


            border-length:;
          

bdlen:a

border-length:auto;

bdsp


            border-spacing:;
          

bds


            border-style:;
          

bds:n

border-style:none;

bds:h

border-style:hidden;

bds:dt

border-style:dotted;

bds:ds

border-style:dashed;

bds:s

border-style:solid;

bds:db

border-style:double;

bds:dtds

border-style:dot-dash;

bds:dtdtds

border-style:dot-dot-dash;

bds:w

border-style:wave;

bds:g

border-style:groove;

bds:r

border-style:ridge;

bds:i

border-style:inset;

bds:o

border-style:outset;

bdw


            border-width:;
          

bdt, bt


            border-top:;
          

bdt+


            border-top:1pxsolid#000;
          

bdt:n

border-top:none;

bdtw


            border-top-width:;
          

bdts


            border-top-style:;
          

bdts:n

border-top-style:none;

bdtc


            border-top-color:#000;
          

bdtc:t

border-top-color:transparent;

bdr, br


            border-right:;
          

bdr+


            border-right:1pxsolid#000;
          

bdr:n

border-right:none;

bdrw


            border-right-width:;
          

bdrst


            border-right-style:;
          

bdrst:n

border-right-style:none;

bdrc


            border-right-color:#000;
          

bdrc:t

border-right-color:transparent;

bdb, bb


            border-bottom:;
          

bdb+


            border-bottom:1pxsolid#000;
          

bdb:n

border-bottom:none;

bdbw


            border-bottom-width:;
          

bdbs


            border-bottom-style:;
          

bdbs:n

border-bottom-style:none;

bdbc


            border-bottom-color:#000;
          

bdbc:t

border-bottom-color:transparent;

bdl, bl


            border-left:;
          

bdl+


            border-left:1pxsolid#000;
          

bdl:n

border-left:none;

bdlw


            border-left-width:;
          

bdls


            border-left-style:;
          

bdls:n

border-left-style:none;

bdlc


            border-left-color:#000;
          

bdlc:t

border-left-color:transparent;

bdrs


            border-radius:;
          

bdtrrs


            border-top-right-radius:;
          

bdtlrs


            border-top-left-radius:;
          

bdbrrs


            border-bottom-right-radius:;
          

bdblrs


            border-bottom-left-radius:;
          

lis


            list-style:;
          

lis:n

list-style:none;

lisp


            list-style-position:;
          

lisp:i

list-style-position:inside;

lisp:o

list-style-position:outside;

list


            list-style-type:;
          

list:n

list-style-type:none;

list:d

list-style-type:disc;

list:c

list-style-type:circle;

list:s

list-style-type:square;

list:dc

list-style-type:decimal;

list:dclz

list-style-type:decimal-leading-zero;

list:lr

list-style-type:lower-roman;

list:ur

list-style-type:upper-roman;

lisi


            list-style-image:;
          

lisi:n

list-style-image:none;

pgbb


            page-break-before:;
          

pgbb:au

page-break-before:auto;

pgbb:al

page-break-before:always;

pgbb:l

page-break-before:left;

pgbb:r

page-break-before:right;

pgbi


            page-break-inside:;
          

pgbi:au

page-break-inside:auto;

pgbi:av

page-break-inside:avoid;

pgba


            page-break-after:;
          

pgba:au

page-break-after:auto;

pgba:al

page-break-after:always;

pgba:l

page-break-after:left;

pgba:r

page-break-after:right;

orp


            orphans:;
          

wid


            widows:;
          

!

!important

@f


            @font-face {
            font-family:;
            src:url(|);
            }
          

@f+


            @font-face {
            font-family: 'FontName';
            src: url('FileName.eot');
            src: url('FileName.eot?#iefix') format('embedded-opentype'),
            url('FileName.woff') format('woff'),
            url('FileName.ttf') format('truetype'),
            url('FileName.svg#FontName') format('svg');
            font-style: normal;
            font-weight: normal;
            }
          

@i, @import


            @import url();
          

@kf


            @-webkit-keyframes identifier {
            from {  }to {  }
            }
            @-o-keyframes identifier {
            from {  }to {  }
            }
            @-moz-keyframes identifier {
            from {  }to {  }
            }
            @keyframes identifier {
            from {  }to {  }
            }
          

@m, @media


            @media screen {
            
            }
          

anim


            animation:;
          

anim-


            animation:namedurationtiming-functiondelayiteration-countdirectionfill-mode;
          

animdel


            animation-delay:time;
          

animdir


            animation-direction:normal;
          

animdir:a

animation-direction:alternate;

animdir:ar

animation-direction:alternate-reverse;

animdir:n

animation-direction:normal;

animdir:r

animation-direction:reverse;

animdur


            animation-duration:0s;
          

animfm


            animation-fill-mode:both;
          

animfm:b

animation-fill-mode:backwards;

animfm:bt, animfm:bh

animation-fill-mode:both;

animfm:f

animation-fill-mode:forwards;

animic


            animation-iteration-count:1;
          

animic:i

animation-iteration-count:infinite;

animn


            animation-name:none;
          

animps


            animation-play-state:running;
          

animps:p

animation-play-state:paused;

animps:r

animation-play-state:running;

animtf


            animation-timing-function:linear;
          

animtf:cb


            animation-timing-function:cubic-bezier(0.1, 0.7, 1.0, 0.1);
          

animtf:e

animation-timing-function:ease;

animtf:ei

animation-timing-function:ease-in;

animtf:eio

animation-timing-function:ease-in-out;

animtf:eo

animation-timing-function:ease-out;

animtf:l

animation-timing-function:linear;

ap

appearance:${none};

bg:ie


            filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='x.png',sizingMethod='crop');
          

cm


            /* ${child} */
          

colm


            columns:;
          

colmc


            column-count:;
          

colmf


            column-fill:;
          

colmg


            column-gap:;
          

colmr


            column-rule:;
          

colmrc


            column-rule-color:;
          

colmrs


            column-rule-style:;
          

colmrw


            column-rule-width:;
          

colms


            column-span:;
          

colmw


            column-width:;
          

mar


            max-resolution:res;
          

mir


            min-resolution:res;
          

op:ie

filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);

op:ms

-ms-filter:'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';

ori


            orientation:;
          

ori:l

orientation:landscape;

ori:p

orientation:portrait;

tov

text-overflow:${ellipsis};

tov:c

text-overflow:clip;

tov:e

text-overflow:ellipsis;

trf


            transform:;
          

trf:r


            transform: rotate(angle);
          

trf:sc


            transform: scale(x, y);
          

trf:scx


            transform: scaleX(x);
          

trf:scy


            transform: scaleY(y);
          

trf:skx


            transform: skewX(angle);
          

trf:sky


            transform: skewY(angle);
          

trf:t


            transform: translate(x, y);
          

trf:tx


            transform: translateX(x);
          

trf:ty


            transform: translateY(y);
          

trfo


            transform-origin:;
          

trfs


            transform-style:preserve-3d;
          

trs


            transition:proptime;
          

trsde


            transition-delay:time;
          

trsdu


            transition-duration:time;
          

trsp


            transition-property:prop;
          

trstf


            transition-timing-function:tfunc;
          

us

user-select:${none};

wfsm

-webkit-font-smoothing:${antialiased};

wfsm:a

-webkit-font-smoothing:antialiased;

wfsm:n

-webkit-font-smoothing:none;

wfsm:s, wfsm:sa

-webkit-font-smoothing:subpixel-antialiased;

XSL


tm


          <xsl:template match="" mode=""></xsl:template>
        

tmatch


            Alias of tm<xsl:template match="" mode=""></xsl:template>
        

tn


          <xsl:template name=""></xsl:template>
        

tname


            Alias of tn<xsl:template name=""></xsl:template>
        

call


          <xsl:call-template name="" />
        

ap


          <xsl:apply-templates select="" mode="" />
        

api

<xsl:apply-imports />

imp


          <xsl:import href="" />
        

inc


          <xsl:include href="" />
        

ch


          <xsl:choose></xsl:choose>
        

xsl:when


          <xsl:when test=""></xsl:when>
        

wh


            Alias of xsl:when<xsl:when test=""></xsl:when>
        

ot


          <xsl:otherwise></xsl:otherwise>
        

if


          <xsl:if test=""></xsl:if>
        

par


          <xsl:param name=""></xsl:param>
        

pare


          <xsl:param name="" select="" />
        

var


          <xsl:variable name=""></xsl:variable>
        

vare


          <xsl:variable name="" select="" />
        

wp


          <xsl:with-param name="" select="" />
        

key


          <xsl:key name="" match="" use="" />
        

elem


          <xsl:element name=""></xsl:element>
        

attr


          <xsl:attribute name=""></xsl:attribute>
        

attrs


          <xsl:attribute-set name=""></xsl:attribute-set>
        

cp


          <xsl:copy select="" />
        

co


          <xsl:copy-of select="" />
        

val


          <xsl:value-of select="" />
        

each


          <xsl:for-each select=""></xsl:for-each>
        

for


            Alias of each<xsl:for-each select=""></xsl:for-each>
        

tex


          <xsl:text></xsl:text>
        

com


          <xsl:comment></xsl:comment>
        

msg


          <xsl:message terminate="no"></xsl:message>
        

fall


          <xsl:fallback></xsl:fallback>
        

num


          <xsl:number value="" />
        

nam


          <namespace-alias stylesheet-prefix="" result-prefix="" />
        

pres


          <xsl:preserve-space elements="" />
        

strip


          <xsl:strip-space elements="" />
        

proc


          <xsl:processing-instruction name=""></xsl:processing-instruction>
        

sort


          <xsl:sort select="" order="" />
        

choose+


            Alias of xsl:choose>xsl:when+xsl:otherwise<xsl:choose>
          <xsl:when test=""></xsl:when>
          <xsl:otherwise></xsl:otherwise>
          </xsl:choose>
        

xsl


            Alias of 
              !!!+xsl:stylesheet[version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform]>{
              |}
            <?xml version="1.0" encoding="UTF-8"?>
          <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
          </xsl:stylesheet>
        

!!!

<?xml version="1.0" encoding="UTF-8"?>

object into an XML string

Microsoft added the ability to create a static method in a static class that behaves like it’s a member of the class that it is called on. This has some interesting ramifications including that you can call an extension method off of a null reference

So let’s say you want to create an extension method that makes it easy to turn any object into an XML string. We could write:

public static class ObjectExtensions
    {
         public static string ToXml(this object input, bool shouldPrettyPrint)
        {
             if (input == null) throw new ArgumentNullException("input");
    
            var xs = new XmlSerializer(input.GetType());
           
         using (var memoryStream = new MemoryStream())
          using (var xmlTextWriter = new XmlTextWriter(memoryStream, new UTF8Encoding()))
          {
              xs.Serialize(xmlTextWriter, input);
               return Encoding.UTF8.GetString(memoryStream.ToArray());
           }
       }
    }

Now, we can easily write:

 // can convert primatives to xml
     string intXml = 5.ToXml();
     
     // can convert complex types to xml
    string objXml = product.ToXml();
     
    // can even call as static method if you choose:
    objXml = ObjectExtensions.ToXml(products);

WebForms UnobtrusiveValidationMode requires a ScriptResourceMapping for ‘jquery’. Please add a ScriptResourceMapping named jquery(case-sensitive).

Yesterday i teach my colleague asp validations. After adding validator i got an error.

musthaan
UnobtrusiveValidationMode

i am surpriced.I am not added jquery or any other plugins and created a simple form. not complex. after a lot of search i got the reason and solution. In the earlier versions of ASP.Net it was working via putting a JavaScript for that. Let’s take a simple example. I have putted three things here. A textbox, required field validator and a button like following.

<div>
    <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
    <asp:Button ID="btnSubmit" runat="server" Text="Submit" />
    <asp:RequiredFieldValidator ID="reqname" runat="server"
         ErrorMessage="Name is required" ControlToValidate="txtName">
     </asp:RequiredFieldValidator>
</div>

Now, When you right click and view source. You will see that there is a JavaScript code embedded to page.   If you create web application in ASP.Net 4.5 It will enabled by default. So let’s see how its works. We are going to use same thing as above. It’s works in same way as worked earlier when you click submit it will validate textbox and give a validation message “Name is required”. Now you done view source.Here you can see that It has added “data-val” attribute and based on that it will validate the control. It’s HTML5 way of doing validations. You can see it’s much cleaner then earlier version of asp.net. This validation requires a jQuery.js file as internally its using jQuery for the validations. So if you have created an empty ASP.Net 4.5 web application. You need to add following code in application_start event of global.asax file.

protected void Application_Start(object sender, EventArgs e)
{
        ScriptManager.ScriptResourceMapping.AddDefinition("jquery",
        new ScriptResourceDefinition
        {
            Path = "~/scripts/jquery-2.0.0.min.js",
            DebugPath = "~/scripts/jquery-2.0.0.js",
            CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.0.min.js",
            CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.0.js"
        });
}

 

How to configure Unobtrusive validations in ASP.Net 4.5:
There are few ways of configuring the Unobtrusive validations in ASP.Net 4.5. There is a property got added UnobtrusiveValidationMode  and It has two value.

  • None : It will tell that validation work in old fashion way. It will disable Unobtrusive validation.
  • WebForms: It will tell that it will have Unobtrusive validations.

There are multiple ways you can configure this property. You can put that app settings like following.

<appsettings>
    <add key="ValidationSettings:UnobtrusiveValidationMode" value="None"/>
</appsettings>

Or you can write at application_start event like below.

void Application_Start(object sender, EventArgs e)
{
    ValidationSettings.UnobtrusiveValidationMode =
            UnobtrusiveValidationMode.WebForms;
}

Or you can write in page_load event like following.

protected void Page_Load(object sender, EventArgs e)
{
    Page.UnobtrusiveValidationMode = UnobtrusiveValidationMode.WebForms;
}

That’s it. Hope you like it. Stay tuned for more..

Musthaan

Seeing the SQL Generated by LINQ to Entity Queries

Sometimes you really, really, really want to see the SQL that LINQ generates when working with the Entity Framework. For instance, in a comment to a recent tip, a reader mentioned that a LINQ to Entities query generated a SQL statement that joined more than 40 tables. The application’s performance was, to say the least, disappointing. If you’re not getting what you expect from your LINQ queries, being able to see the SQL statement can give you real clues in tracking down the problem, as it did with that column’s reader.

There are a couple of free Visual Studio Add-ins that, among their other features, allow you to see the SQL statement for a LINQ query (The LINQ to Entity Query Visualizer, Entity Visualizer). However, developers have had trouble getting those add-ins up and running in some versions of Visual Studio (especially Visual Studio 2010). Fortunately, if all you want to do is see your SQL statement, you can do it in Visual Studio’s debug mode using a little code in the Immediate Window.

The first step, of course, is have a program with a LINQ query as in this example:

Dim en As New northwndEntities

Dim res = From cust In en.Customers

Select cust
If you cast the variable holding the output from the query (res, in this case) to Objects.ObjectQuery then you get access to the ObjectQuery’s ToTraceString property. That property returns the SQL statement that will be issued by your Entity Framework Model. In Visual Basic, you’d type this in the Immediate window:
CType(res, Objects.ObjectQuery).ToTraceString()
In C#, you’d type this:
((System.Data.Objects.ObjectQuery) res).ToTraceString()
For my sample query, the result looked like this in Visual Basic (the C# version includes escape characters for newline and carriage returns):
SELECT [Extent1].[CustomerID] AS [CustomerID],
[Extent1].[CompanyName] AS [CompanyName],
[Extent1].[ContactName] AS [ContactName],
[Extent1].[ContactTitle] AS [ContactTitle],
[Extent1].[Address] AS [Address],
[Extent1].[City] AS [City],
[Extent1].[Region] AS [Region],
[Extent1].[PostalCode] AS [PostalCode],
[Extent1].[Country] AS [Country],
[Extent1].[Phone] AS [Phone],
[Extent1].[Fax] AS [Fax],
[Extent1].[Timestamp] AS [Timestamp]
FROM [dbo].[Customers] AS [Extent1]

Musthaan

Sent e-mail from ASP.NET site using GMail’s SMTP server

Here’s a class I’ve used in the past:

namespace MyApp
{
    public class GMailer
    {
        public static string GmailUsername { get; set; }
        public static string GmailPassword { get; set; }
        public static string GmailHost { get; set; }
        public static int GmailPort { get; set; }
        public static bool GmailSSL { get; set; }

        public string ToEmail { get; set; }
        public string Subject { get; set; }
        public string Body { get; set; }
        public bool IsHtml { get; set; }

        static GMailer()
        {
            GmailHost = "smtp.gmail.com";
            GmailPort = 25; // Gmail can use ports 25, 465 & 587; but must be 25 for medium trust environment.
            GmailSSL = true;
        }

        public void Send()
        {
            SmtpClient smtp = new SmtpClient();
            smtp.Host = GmailHost;
            smtp.Port = GmailPort;
            smtp.EnableSsl = GmailSSL;
            smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
            smtp.UseDefaultCredentials = false;
            smtp.Credentials = new NetworkCredential(GmailUsername, GmailPassword);

            using (var message = new MailMessage(GmailUsername, ToEmail))
            {
                message.Subject = Subject;
                message.Body = Body;
                message.IsBodyHtml = IsHtml;
                smtp.Send(message);
            }
        }
    }
}



The class needs to be configured in your Application_Start event:

GMailer.GmailUsername = "you@gmail.com";
GMailer.GmailPassword = "password";

Usage:

GMailer mailer = new GMailer();
mailer.ToEmail = "someone@somewhere.com";
mailer.Subject = "Email Subject Line";
mailer.Body = "This is a test message";
mailer.IsHtml = false;
mailer.Send();