tag:blogger.com,1999:blog-35257856687389719402024-03-13T01:07:24.939-07:00Visual Studio 2010 Issues and SolutionsThis blog is created to share the practical scenarios and implementations that are done in .Net based applications. It will be useful for students learning .Net, Freshers and even experienced .Net developers.Anonymoushttp://www.blogger.com/profile/06638141290420039813noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-3525785668738971940.post-12751527040930954002013-11-12T22:26:00.001-08:002013-11-12T22:26:20.355-08:00Allow Account access while sending Email From ASP.Net using Gmail as SMTP Client<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">In my previous blog post <a href="http://karmic-development.blogspot.in/2013/10/send-email-from-aspnet-using-gmail-as.html" target="_blank">Send Email From ASP.Net using Gmail as SMTP Client</a>, I had shown how we can send email from ASP.Net application using gmail as smtp client and how to avoid the overriding of the "From Email Address" with the gmail account at the receipient inbox.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">But, before doing all this, the gmail account which is to be used as smtp client need to be authenticated so that it can be used in the web-applications and devices (laptops, tablets, smart-phones) as smtp client. This can be achieved with the following 3 steps:</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
</div>
<ul>
<li><span style="font-family: Verdana, sans-serif;">Open the URL </span><a href="https://accounts.google.com/DisplayUnlockCaptcha" style="font-family: Verdana, sans-serif;">https://accounts.google.com/DisplayUnlockCaptcha</a><span style="font-family: Verdana, sans-serif;">. You will be asked to login using the gmail login. Login with the account which you need to use as smtp client credential.</span></li>
</ul>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj44rZE_3J2_mvyDGpiIg5HdbYzcNi1ups6sLB1WHEmklp7k4g5ANOcEqximXZzo7DEsbGjkUJBFPXNjUjdDGqQh9peGaWepOv0TuJPAu8-zKaQu2R0bITz8iSe_ihDkxBSnMZDrPA6G2Jw/s1600/Authenticate-Email-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj44rZE_3J2_mvyDGpiIg5HdbYzcNi1ups6sLB1WHEmklp7k4g5ANOcEqximXZzo7DEsbGjkUJBFPXNjUjdDGqQh9peGaWepOv0TuJPAu8-zKaQu2R0bITz8iSe_ihDkxBSnMZDrPA6G2Jw/s400/Authenticate-Email-1.png" width="400" /></a></div>
<br />
<br />
<br />
<ul style="text-align: left;">
<li><span style="font-family: Verdana, sans-serif;">After entering correct email and password,you will be asked to confirm that this account will be used for devices and applications. Click on "continue".</span></li>
</ul>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6NoYmhtEn-6op7R_LXxBrIW-MWeV2lUDsu9nw5kEbXsbo6dl6pQAkIlmvDRrOrwuahyphenhyphenL1UEvwea9O48dXK3qvGbAFMa-D-q0SVdqZbgk9Luv8PaEHQB4YSSIxysX9yvyT4IqkP24uuGGV/s1600/Authenticate-Email-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6NoYmhtEn-6op7R_LXxBrIW-MWeV2lUDsu9nw5kEbXsbo6dl6pQAkIlmvDRrOrwuahyphenhyphenL1UEvwea9O48dXK3qvGbAFMa-D-q0SVdqZbgk9Luv8PaEHQB4YSSIxysX9yvyT4IqkP24uuGGV/s400/Authenticate-Email-2.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
<br />
<ul style="text-align: left;">
<li><span style="font-family: Verdana, sans-serif;">Your account access for devices and applications is enabled.</span></li>
</ul>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuOJTvRGEAiElUFrwzjkTPmKqM4IbB2Ur8CTlddH7Kg0k1MlsCngFzxsPckjIjynbamCbpkF3MHhAfFzVNWK1aV3jzz1-oojY5eid36Cmz9uFfNVOlupSrmXN0ZD17QHh2xEaOKYv17AlS/s1600/Authenticate-Email-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuOJTvRGEAiElUFrwzjkTPmKqM4IbB2Ur8CTlddH7Kg0k1MlsCngFzxsPckjIjynbamCbpkF3MHhAfFzVNWK1aV3jzz1-oojY5eid36Cmz9uFfNVOlupSrmXN0ZD17QHh2xEaOKYv17AlS/s400/Authenticate-Email-3.png" width="400" /></a></div>
<br />
<br />
<span style="font-family: Verdana, sans-serif;">I hope this post is helpful to you.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Thanks & Regards,</span><br />
<span style="font-family: Verdana, sans-serif;">Munjal</span></div>
Anonymoushttp://www.blogger.com/profile/06638141290420039813noreply@blogger.com0tag:blogger.com,1999:blog-3525785668738971940.post-71478931245786260052013-10-31T11:47:00.003-07:002013-10-31T11:47:47.205-07:00Send Email From ASP.Net using Gmail as SMTP Client<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Verdana, sans-serif;">Day before yesterday, I faced a very unusual problem in sending email through ASP.Net / C# application using gmail as the smtp host. Following is the code I used to send email.</span><br />
<span style="font-family: Verdana, sans-serif;"><br />
<span style="color: #38761d; font-size: x-small;"><b>MailMessage mail = new MailMessage();</b></span></span><br />
<span style="color: #38761d; font-family: Verdana, sans-serif; font-size: x-small;"><b>mail.From = new MailAddress("abc@mydomain.com", "Enquiry");</b></span><br />
<span style="color: #38761d; font-family: Verdana, sans-serif; font-size: x-small;"><b>mail.To.Add("munjal.pandya@yahoo.com");</b></span><br />
<span style="color: #38761d; font-family: Verdana, sans-serif; font-size: x-small;"><b>mail.IsBodyHtml = true;</b></span><br />
<span style="color: #38761d; font-family: Verdana, sans-serif; font-size: x-small;"><b>mail.Subject = "Registration";</b></span><br />
<span style="color: #38761d; font-family: Verdana, sans-serif; font-size: x-small;"><b>mail.Body = "Some Text";</b></span><br />
<span style="color: #38761d; font-family: Verdana, sans-serif; font-size: x-small;"><b>mail.Priority = MailPriority.High;</b></span><br />
<span style="font-family: Verdana, sans-serif;"><b><span style="color: #38761d; font-size: x-small;"><br /></span>
<span style="color: #38761d; font-size: x-small;">SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);</span></b></span><br />
<span style="color: #38761d; font-family: Verdana, sans-serif; font-size: x-small;"><b>//smtp.UseDefaultCredentials = true;</b></span><br />
<span style="color: #38761d; font-family: Verdana, sans-serif; font-size: x-small;"><b>smtp.Credentials = new System.Net.NetworkCredential("xyz@gmail.com", "<my gmail pwd>");</b></span><br />
<span style="color: #38761d; font-family: Verdana, sans-serif; font-size: x-small;"><b>smtp.EnableSsl = true;</b></span><br />
<span style="color: #38761d; font-family: Verdana, sans-serif; font-size: x-small;"><b>//smtp.DeliveryMethod = SmtpDeliveryMethod.Network;</b></span><br />
<span style="font-family: Verdana, sans-serif;"><b><span style="color: #38761d; font-size: x-small;"></span><br /></b></span>
<span style="color: #38761d; font-family: Verdana, sans-serif; font-size: x-small;"><b>smtp.Send(mail);</b></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">There is no problem with this code and the e</span><span style="font-family: Verdana, sans-serif;">mail will be sent successfully without any error.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="color: red; font-family: Verdana, sans-serif; font-size: x-large;"><u><b>ISSUE</b></u></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">When the email is received in the recipient inbox, the "from address" displayed will be of gmail account which is used as the network credential for smtp client. This is because, gmail will over-write the "from address".</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="color: #274e13; font-family: Verdana, sans-serif; font-size: x-large;"><b><u>SOLUTION</u></b></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">You need to follow the below mentioned steps to display the "from address" correctly:</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">1. Login to your Gmail account.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-9xCyzFM3jGN9DAhq6eRfSgp7o8yoc1T8dS-TiTsCbbx-gR7u3xgzmtrqRMaQ-T-iBleUbb59tW6Q-8uIOWU_nNl4nOoE6rNIGlY6Q5bppBmRTfL9xzx9psSbMyR9hugiSPP1Wbij5aQu/s1600/SendEmailviaGmail-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-9xCyzFM3jGN9DAhq6eRfSgp7o8yoc1T8dS-TiTsCbbx-gR7u3xgzmtrqRMaQ-T-iBleUbb59tW6Q-8uIOWU_nNl4nOoE6rNIGlY6Q5bppBmRTfL9xzx9psSbMyR9hugiSPP1Wbij5aQu/s640/SendEmailviaGmail-1.png" width="640" /></span></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">2. Go to <b>Settings</b> Menu</span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif; margin-left: 1em; margin-right: 1em;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaKp4RPV2NmbdgjUiG57H1Jcdhyu3lLyvCky520D4SPZmeJBVLQGkx-McOhMwJ7emxMw0LdTNPxw0EJK2wrR64QhyVM8butulfmGf5GI_t3QL-cGCRbTpaU3J9d_1kxccBr5A6ek2Pent7/s1600/SendEmailviaGmail-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaKp4RPV2NmbdgjUiG57H1Jcdhyu3lLyvCky520D4SPZmeJBVLQGkx-McOhMwJ7emxMw0LdTNPxw0EJK2wrR64QhyVM8butulfmGf5GI_t3QL-cGCRbTpaU3J9d_1kxccBr5A6ek2Pent7/s640/SendEmailviaGmail-2.png" width="640" /></a></span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">3. In the Accounts Tab, Click on the link "<b>Add another email address you own</b>"</span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif; margin-left: 1em; margin-right: 1em;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHa-e5Qr0lQam44LXeJnq9v4467AcgTc9YNy1A_99dZwKbV0LGq9iwYfnW6YbVIqIUzFPK904iDVzx3QwQZWZlfNUBc4sxVrF2qys5H6N9DA499cLjHd2kJ7TcSAePXwJwEJ-CYLkjtrvH/s1600/SendEmailviaGmail-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHa-e5Qr0lQam44LXeJnq9v4467AcgTc9YNy1A_99dZwKbV0LGq9iwYfnW6YbVIqIUzFPK904iDVzx3QwQZWZlfNUBc4sxVrF2qys5H6N9DA499cLjHd2kJ7TcSAePXwJwEJ-CYLkjtrvH/s640/SendEmailviaGmail-3.png" width="640" /></a></span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">4. Enter the email address which you want in the "From address" field and click on "<b>Next Step</b>" button.</span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif; margin-left: 1em; margin-right: 1em;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRTPgyhpawaon3gCjhfKDqgfXPe0nUi6dACIzQkwBOgbEaTNIxtbwyrRzIA4z_hkdp5uLEHDg5pHw_kcauW2S9QwueZnd7msVU_XBq7RldByAZfzatIzoL53B1W2P01gfquEhgJuYkBdv2/s1600/SendEmailviaGmail-4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRTPgyhpawaon3gCjhfKDqgfXPe0nUi6dACIzQkwBOgbEaTNIxtbwyrRzIA4z_hkdp5uLEHDg5pHw_kcauW2S9QwueZnd7msVU_XBq7RldByAZfzatIzoL53B1W2P01gfquEhgJuYkBdv2/s640/SendEmailviaGmail-4.png" width="640" /></a></span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">5. Select Option "<b>Send through Gmail</b>" and click on "<b>Next Step</b>" button.</span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif; margin-left: 1em; margin-right: 1em;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhks5Coeqo13nllm8b2uCvX1ErYayfnGkmaTUdj_WahUQPfq85yBS9NLBAGLZ7yAu4TNsXWba6I6yeEuSr9rWb7Zp7zmDU7Pj9tlnosXBiOAHkeSQi7KLdmUdAlG6ZYC9LZimooY5WVHoDy/s1600/SendEmailviaGmail-5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhks5Coeqo13nllm8b2uCvX1ErYayfnGkmaTUdj_WahUQPfq85yBS9NLBAGLZ7yAu4TNsXWba6I6yeEuSr9rWb7Zp7zmDU7Pj9tlnosXBiOAHkeSQi7KLdmUdAlG6ZYC9LZimooY5WVHoDy/s640/SendEmailviaGmail-5.png" width="640" /></a></span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">6. Click on the "<b>Send Verification</b>" button. You will receive an email from Gmail team. This email will have a verification code and a verification link. You need to either enter the verification code or click on the verification link.</span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif; margin-left: 1em; margin-right: 1em;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrobJHdWOEOvgRI9H-zN9eQl6n68J7KqKKYgfP9TmTMPT35uE8MO_Q0Z1GhH7EMCBsaGqyTCk3xDLuD8OSOMfjHihL_-siv97VYomAFZpHlmxCQ15GIHhmyYr3N3AXffDe2JwQ7wLJqzP6/s1600/SendEmailviaGmail-6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrobJHdWOEOvgRI9H-zN9eQl6n68J7KqKKYgfP9TmTMPT35uE8MO_Q0Z1GhH7EMCBsaGqyTCk3xDLuD8OSOMfjHihL_-siv97VYomAFZpHlmxCQ15GIHhmyYr3N3AXffDe2JwQ7wLJqzP6/s640/SendEmailviaGmail-6.png" width="640" /></a></span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">7. Enter the Verification code sent by gmail.</span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif; margin-left: 1em; margin-right: 1em;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifqnF2yDjBreb4uWYGjizVCqawJUF_7kOfljZKIC-OFUBt_LrFIcCRVM6oBiNnijc-x97WEL7DSxiyr0gJp6pVnJVHHWJc5bmaqKKw0m6BO04-wFH02A7oYJr8-pLTFrdbFmWB07g-75ni/s1600/SendEmailviaGmail-7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifqnF2yDjBreb4uWYGjizVCqawJUF_7kOfljZKIC-OFUBt_LrFIcCRVM6oBiNnijc-x97WEL7DSxiyr0gJp6pVnJVHHWJc5bmaqKKw0m6BO04-wFH02A7oYJr8-pLTFrdbFmWB07g-75ni/s640/SendEmailviaGmail-7.png" width="640" /></a></span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">8. The account which you require in the "From Address" field will be linked as an alias with your gmail account.</span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif; margin-left: 1em; margin-right: 1em;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieUIPADuE8SP1V_98URZIjXiyYROjTpfWGV5En_Ar4rI4IybZJWocs0DZ9k72WXdhjTnkw0ow67Kp-5wnf9nnCE-5M-CBq5nPw0qG5PMs-DaX1gqkK28zWuupg-tJWXpYVmjAaKfyRQayX/s1600/SendEmailviaGmail-8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieUIPADuE8SP1V_98URZIjXiyYROjTpfWGV5En_Ar4rI4IybZJWocs0DZ9k72WXdhjTnkw0ow67Kp-5wnf9nnCE-5M-CBq5nPw0qG5PMs-DaX1gqkK28zWuupg-tJWXpYVmjAaKfyRQayX/s640/SendEmailviaGmail-8.png" width="640" /></a></span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">After following the above steps, execute the above given code again. You will see that the "from address" field is not of gmail but the one which is set for the MailMessage.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">The above steps also need to be followed when configuring email account for mail clients like Outlook using gmail as the smtp client.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">I hope you find this post useful. You can give your inputs in the comments section.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">Thanks & Regards,</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">Munjal</span></div>
</div>
Anonymoushttp://www.blogger.com/profile/06638141290420039813noreply@blogger.com0tag:blogger.com,1999:blog-3525785668738971940.post-26826304135431876532013-10-13T04:01:00.003-07:002013-10-13T04:01:26.453-07:00URL Routing in ASP.Net Web Forms - Same number of Parameters<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Arial, Helvetica, sans-serif;">Yesterday, our team faced an interesting issue in URL Routing. My subordinate was finding difficulty in resolving a problem with routes having same number of parameters. So, I thought of sharing it with you the same. Issue goes like this.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="color: red; font-family: Arial, Helvetica, sans-serif; font-size: large;"><b><u>ISSUE</u></b></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Two routes were created in Global.asax file as shown below:</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="color: #45818e; font-family: Arial, Helvetica, sans-serif; font-size: x-small;">routeCollection.MapPageRoute("ProjectType", "{dealtype}/{searchstring}", "~/result.aspx");</span><br />
<span style="color: #45818e; font-family: Arial, Helvetica, sans-serif; font-size: x-small;">routeCollection.MapPageRoute("CompanyDetail", "company-details/{personID}", "~/companyregistration.aspx");</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Now, in the above case, in "ProjectType" route both the parameters are dynamic whereas for the "CompanyDetail" route, one part of the route is hard-coded i.e. 'company-details' and other parameter is dynamically set. But, when I redirect to route of company details, it was still requesting result.aspx instead of companyregistration.aspx. We tried both the ways of redirecting to the route.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="color: #45818e; font-family: Arial, Helvetica, sans-serif; font-size: x-small;">Response.RedirectToRoute("CompanyDetail", new { personID = lngPersonID.ToString() });</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">OR</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="color: #45818e; font-size: x-small;"><span style="font-family: Arial, Helvetica, sans-serif;">Response.Redirect("company-details/" + </span><span style="font-family: Arial, Helvetica, sans-serif;">lngPersonID.ToString()</span><span style="font-family: Arial, Helvetica, sans-serif;">);</span></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">But it was requesting result.aspx.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #6aa84f; font-size: large;"><u><b>RESOLUTION</b></u></span></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">After trying quite a few options, we made the following change in the Global.asax file and it worked. We just changed the order of the route declaration.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="color: #45818e; font-family: Arial, Helvetica, sans-serif; font-size: x-small;">routeCollection.MapPageRoute("CompanyDetail", "company-details/{personID}", "~/companyregistration.aspx");</span><br />
<span style="color: #45818e; font-family: Arial, Helvetica, sans-serif; font-size: x-small;">routeCollection.MapPageRoute("ProjectType", "{dealtype}/{searchstring}", "~/result.aspx");</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">After changing the order of declaration, both the routes were working.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="color: #3d85c6; font-family: Arial, Helvetica, sans-serif; font-size: large;"><b><u>CONCLUSION</u></b></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">After looking at this issue, following points can be concluded:</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Routes without any hard-coded identifier must be declared at the last.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">If there are more than one </span><span style="font-family: Arial, Helvetica, sans-serif;">routes without any hard-coded identifier and having the same number of identifier, then the route declared first will override all others and will be considered by ASP.Net.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">I hope this article was useful to you. You can post your inputs and extra information in the comments section.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">You can also subscribe to this blog by registering your email to get notifications of new posts.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Thanks & Regards,</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Munjal</span></div>
Anonymoushttp://www.blogger.com/profile/06638141290420039813noreply@blogger.com1tag:blogger.com,1999:blog-3525785668738971940.post-6736022390590365032013-10-10T04:30:00.001-07:002013-10-10T04:30:15.463-07:00Add Prefix www automatically in URL in ASP.Net<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Arial, Helvetica, sans-serif;">When opening a website from the browser, some people don't like to write the www prefix and open the website without it. Thus, to maintain the uniformity, ASP.Net provides a facility to add automatically, the www prefix in case it's not found.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">You just need to add the following rewriter rule in your web.config file:</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<pre class="default prettyprint prettyprinted" style="background-color: #eeeeee; border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 10px; max-height: 600px; overflow: auto; padding: 5px; vertical-align: baseline; width: auto; word-wrap: normal;"><code style="border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin: 0px; padding: 0px; vertical-align: baseline;"><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"><rewrite></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"><rules></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"><rule</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="atn" style="background-color: transparent; border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;">name</span><span class="pun" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="atv" style="background-color: transparent; border: 0px; color: blue; margin: 0px; padding: 0px; vertical-align: baseline;">"Add WWW prefix"</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="atn" style="background-color: transparent; border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;">stopProcessing</span><span class="pun" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="atv" style="background-color: transparent; border: 0px; color: blue; margin: 0px; padding: 0px; vertical-align: baseline;">"true"</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;">></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"><match</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="atn" style="background-color: transparent; border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;">url</span><span class="pun" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="atv" style="background-color: transparent; border: 0px; color: blue; margin: 0px; padding: 0px; vertical-align: baseline;">"(.*)"</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="atn" style="background-color: transparent; border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;">ignoreCase</span><span class="pun" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="atv" style="background-color: transparent; border: 0px; color: blue; margin: 0px; padding: 0px; vertical-align: baseline;">"true"</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;">/></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"><conditions></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"><add</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="atn" style="background-color: transparent; border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;">input</span><span class="pun" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="atv" style="background-color: transparent; border: 0px; color: blue; margin: 0px; padding: 0px; vertical-align: baseline;">"{HTTP_HOST}"</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="atn" style="background-color: transparent; border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;">pattern</span><span class="pun" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="atv" style="background-color: transparent; border: 0px; color: blue; margin: 0px; padding: 0px; vertical-align: baseline;">"^yourdomain\.com$"</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;">/></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"></conditions></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"><action</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="atn" style="background-color: transparent; border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;">type</span><span class="pun" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="atv" style="background-color: transparent; border: 0px; color: blue; margin: 0px; padding: 0px; vertical-align: baseline;">"Redirect"</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="atn" style="background-color: transparent; border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;">url</span><span class="pun" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="atv" style="background-color: transparent; border: 0px; color: blue; margin: 0px; padding: 0px; vertical-align: baseline;">"http://www.yourdomain.com/{R:0}"</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="atn" style="background-color: transparent; border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;">redirectType</span><span class="pun" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="atv" style="background-color: transparent; border: 0px; color: blue; margin: 0px; padding: 0px; vertical-align: baseline;">"Permanent"</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;">/></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"></rule></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"></rules></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"></rewrite></span></code></pre>
<span style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">This will automatically add the www prefix in the URL if not found.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Same thing can also be done to remove the prefix www as given in the below code below:</span><br />
<br />
<pre class="default prettyprint prettyprinted" style="background-color: #eeeeee; border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 10px; max-height: 600px; overflow: auto; padding: 5px; vertical-align: baseline; width: auto; word-wrap: normal;"><code style="border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin: 0px; padding: 0px; vertical-align: baseline;"><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"><rewrite></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"><rules></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"><rule</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="atn" style="background-color: transparent; border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;">name</span><span class="pun" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="atv" style="background-color: transparent; border: 0px; color: blue; margin: 0px; padding: 0px; vertical-align: baseline;">"Remove WWW prefix"</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="atn" style="background-color: transparent; border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;">stopProcessing</span><span class="pun" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="atv" style="background-color: transparent; border: 0px; color: blue; margin: 0px; padding: 0px; vertical-align: baseline;">"true"</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;">></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"><match</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="atn" style="background-color: transparent; border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;">url</span><span class="pun" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="atv" style="background-color: transparent; border: 0px; color: blue; margin: 0px; padding: 0px; vertical-align: baseline;">"(.*)"</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="atn" style="background-color: transparent; border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;">ignoreCase</span><span class="pun" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="atv" style="background-color: transparent; border: 0px; color: blue; margin: 0px; padding: 0px; vertical-align: baseline;">"true"</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;">/></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"><conditions></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"><add</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="atn" style="background-color: transparent; border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;">input</span><span class="pun" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="atv" style="background-color: transparent; border: 0px; color: blue; margin: 0px; padding: 0px; vertical-align: baseline;">"{HTTP_HOST}"</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="atn" style="background-color: transparent; border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;">pattern</span><span class="pun" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="atv" style="background-color: transparent; border: 0px; color: blue; margin: 0px; padding: 0px; vertical-align: baseline;">"^www\.yourdomain\.com$"</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;">/></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"></conditions></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"><action</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="atn" style="background-color: transparent; border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;">type</span><span class="pun" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="atv" style="background-color: transparent; border: 0px; color: blue; margin: 0px; padding: 0px; vertical-align: baseline;">"Redirect"</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="atn" style="background-color: transparent; border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;">url</span><span class="pun" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="atv" style="background-color: transparent; border: 0px; color: blue; margin: 0px; padding: 0px; vertical-align: baseline;">"http://yourdomain.com/{R:1}"</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="atn" style="background-color: transparent; border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;">redirectType</span><span class="pun" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="atv" style="background-color: transparent; border: 0px; color: blue; margin: 0px; padding: 0px; vertical-align: baseline;">"Permanent"</span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;">/></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"></rule></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"></rules></span><span class="pln" style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="tag" style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"></rewrite></span></code></pre>
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">The above <rewrite> code is to be written within the <system.webServer> tag of web.config file.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">You can now subscribe to this blog to get email notifications of the articles posted.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Thanks & Regards,</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Munjal</span></div>
Anonymoushttp://www.blogger.com/profile/06638141290420039813noreply@blogger.com0tag:blogger.com,1999:blog-3525785668738971940.post-11251965304628690832013-10-09T07:42:00.000-07:002013-10-09T07:42:56.305-07:00URL Routing in ASP.Net Web Forms - Pass Parameters in Hyperlink and Anchor tag<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">When you add hyperlinks to a Web page, if you want to specify a route URL instead of a physical file you have two options:</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
</div>
<ol>
<li><span style="font-family: Verdana, sans-serif;">You can hard-code the route URL.</span></li>
<li><span style="font-family: Verdana, sans-serif;">You can specify the route parameter names and values and let ASP.NET generate the URL that corresponds to them. You can also specify the route name if required in order to uniquely identify the route. If you </span><span style="font-family: Verdana, sans-serif;">change route URL patterns later, you would have to update any hard-coded URLs, but if you let ASP.NET generate the URLs, the correct URLs are always automatically generated (unless the parameters in the </span><span style="font-family: Verdana, sans-serif;">patterns are changed).</span></li>
</ol>
<br />
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Let's say you have registered following Routes in the global.asax file.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="color: #6aa84f; font-family: Verdana, sans-serif; font-size: x-small;"><b>public static void RegisterRoutes(RouteCollection routeCollection)</b></span></div>
<div style="text-align: justify;">
<span style="color: #6aa84f; font-family: Verdana, sans-serif; font-size: x-small;"><b> {</b></span></div>
<div style="text-align: justify;">
<span style="color: #6aa84f; font-family: Verdana, sans-serif; font-size: x-small;"><b> routeCollection.MapPageRoute("Home", "home/{city}/{area}", "~/About.aspx", true, new RouteValueDictionary { { "city", "Ahmedabad" }, { "area", "Satellite" } });</b></span></div>
<div style="text-align: justify;">
<span style="color: #6aa84f; font-family: Verdana, sans-serif; font-size: x-small;"><b> routeCollection.MapPageRoute("Result", "result/{city}/{searchstring}", "~/result.aspx");</b></span></div>
<div style="text-align: justify;">
<span style="color: #6aa84f; font-family: Verdana, sans-serif; font-size: x-small;"><b> }</b></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif; font-size: large;"><b><u>Hard Coded URL</u></b></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">In the following procedure you add hyperlinks and anchor tag that use hard-coded URLs to a Web page.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: left;">
<span style="color: #6aa84f; font-family: Verdana, sans-serif; font-size: x-small;"><b><asp:HyperLink ID="lnkHome" runat="server" NavigateUrl="~/home/Ahmedabad/Paldi">Home</asp:HyperLink></b></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">OR</span></div>
<div style="text-align: left;">
<span style="color: #6aa84f; font-family: Verdana, sans-serif; font-size: x-small;"><b><a href="~/home/Ahmedabad/Paldi" runat="server" id="lnkAHome">Anchor - Home</a></b></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">The above markup creates HyperLink and anchor tag controls with hard-coded URLs.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif; font-size: large;"><u><b>Automatically Generate URL from Markup</b></u></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">In the HTML Source Editor, add the following code in NavigateURL for Hyperlink and Href for Anchor Tag:</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: left;">
<span style="color: #6aa84f; font-family: Verdana, sans-serif; font-size: x-small;"><b><asp:HyperLink ID="lnkResult" runat="server" NavigateUrl="<%$RouteUrl:city=Ahmedabad,searchstring=property-brokers-in-ahmedabad,routename=Result%>">Result</asp:HyperLink></b></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">OR</span></div>
<div style="text-align: left;">
<span style="color: #6aa84f; font-family: Verdana, sans-serif; font-size: x-small;"><b><a href="<%$RouteUrl:city=Ahmedabad,searchstring=property-brokers-in-ahmedabad,routename=Result%>" runat="server" id="lnkAResult">Anchor - Result</a></b></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">The above markup uses RouteUrl expressions to create URL for the route that is named Result.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Create Automatically Generated URLs by using C# code</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">When you want to generate the URL from the code-behind, you don't need to give value to NavigateURL or href in the HTML source. You need to generate it in the Page_Load event in code-behind as given </span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">below:</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>// Step - 1</span></div>
<div style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span><b><span style="color: #3d85c6; font-size: x-small;">RouteValueDictionary routeParams = new RouteValueDictionary </span></b></span></div>
<div style="text-align: left;">
<span style="color: #3d85c6; font-family: Verdana, sans-serif; font-size: x-small;"><b> { </b></span></div>
<div style="text-align: left;">
<span style="color: #3d85c6; font-family: Verdana, sans-serif; font-size: x-small;"><b> { "city", "Surat" }, </b></span></div>
<div style="text-align: left;">
<span style="color: #3d85c6; font-family: Verdana, sans-serif; font-size: x-small;"><b> { "searchstring", "parle-point" },</b></span></div>
<div style="text-align: left;">
<span style="color: #3d85c6; font-family: Verdana, sans-serif; font-size: x-small;"><b> { "qs", "result" }</b></span></div>
<div style="text-align: left;">
<span style="color: #3d85c6; font-family: Verdana, sans-serif; font-size: x-small;"><b> };</b></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>// Step - 2</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"> <span style="color: #3d85c6; font-size: x-small;"><b>VirtualPathData vpd = RouteTable.Routes.GetVirtualPath(null, "Result", routeParams);</b></span></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>// Step - 3</span></div>
<div style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"> <span style="color: #3d85c6; font-size: x-small;"><b>lnkResultUsingCode.NavigateUrl = vpd.VirtualPath;</b></span></span></div>
<div style="text-align: left;">
<span style="color: #3d85c6; font-family: Verdana, sans-serif; font-size: x-small;"><b> lnkAResultUsingCode.HRef = vpd.VirtualPath;</b></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><b>Step - 1:</b> The above code creates an instance of the RouteValueDictionary class that contains three parameters. The third parameter is qs, which is not in the URL pattern. Because it is not in the URL pattern, the </span><span style="font-family: Verdana, sans-serif;">category parameter and its value will be rendered as a query-string parameter.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><b>Step - 2:</b> Then, it instantiates a VirtualPathData object by calling the GetVirtualPath method of the RouteCollection class. GetVirtualPath() method takes RouteName and and RouteValueDictionary object as its </span><span style="font-family: Verdana, sans-serif;">parameters.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><b>Step - 3:</b> Finally, VirtualPathData object vpd is to be assigned to the NavigateURL and href properties of Hyperlink and Anchor Tag respectively.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif; font-size: large;"><u><b>Accessing URL Parameter Values in ASP.NET Pages</b></u></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">In an ASP.NET page that has been invoked by ASP.NET routing, you can retrieve the values of URL parameters in markup or in code. We have already seen how to retrieve parameter values in Code in my </span><span style="font-family: Verdana, sans-serif;">previous articles. Let's see how we can retrieve the parameter values in the HTML markup itself.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<div style="text-align: left;">
<span style="color: #6aa84f; font-family: Verdana, sans-serif; font-size: x-small;"><b>City: <asp:Label ID="Label1" runat="server" Text="<%$RouteValue:city%>"></asp:Label><br /></b></span></div>
</div>
<div style="text-align: justify;">
<div style="text-align: left;">
<span style="color: #6aa84f; font-family: Verdana, sans-serif; font-size: x-small;"><b>Searched For: <asp:Label ID="Label2" runat="server" Text="<%$RouteValue:searchstring%>"></asp:Label></b></span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">The above markup uses RouteValue expressions to extract and display the values of the URL parameters that are passed to the page.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">I hope this article is useful for you. Please provide your inputs or extra information in the comments section.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Thanks & Regards,</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Munjal</span></div>
</div>
Anonymoushttp://www.blogger.com/profile/06638141290420039813noreply@blogger.com0tag:blogger.com,1999:blog-3525785668738971940.post-74084239729401696752013-10-07T12:02:00.002-07:002013-10-07T12:02:21.740-07:00URL Routing in ASP.Net Web Forms - Access Script and Image Paths<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">When we implement URL Routing in Web Forms, one thing that need to be taken into consideration is the path of the images and scripts that need to be assigned to the <b>"src"</b> attribute of the <b><img></b> or <b><script></b> </span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">tags. The file source need to be resolved using the <b>ResolveClientUrl()</b> function as explained below:</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif; font-size: large;"><b><u>ILLUSTRATION</u></b></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Actual ASPX File is in root directory :</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">~/Home.aspx</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">The Route Created for Home.aspx:</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><span style="color: blue; font-size: x-small;">routeCollection.MapPageRoute("Home", "home/{city}/{area}", "~/Home.aspx", true, new RouteValueDictionary { { "city", "Ahmedabad" }, { "area", "Satellite" } });</span></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Javascript File Location:</span></div>
<div style="text-align: justify;">
<span style="color: blue; font-family: Verdana, sans-serif; font-size: x-small;">~/js/xyz.js</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Image file Location:</span></div>
<div style="text-align: justify;">
<span style="color: blue; font-family: Verdana, sans-serif; font-size: x-small;">~/images/abc.jpg</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Thus the actual URL displayed will be <b>~/home/Ahmedabad/Satellite</b>.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">But the <b>"src"</b> attribute will always look for the relative path and it will never be able to access the actual file if written in normal way as mentioned above for javascript and image.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Thus, we need to write it as given below:</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="color: #38761d; font-family: Verdana, sans-serif; font-size: x-small;"><b><script src='<%= ResolveClientUrl("~/js/xyz.js") %>' /></b></span></div>
<div style="text-align: justify;">
<span style="color: #38761d; font-family: Verdana, sans-serif; font-size: x-small;"><b><img src='<%= ResolveClientUrl("~/images/abc.jpg") %>' /></b></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">The above method will be able to access the actual file from its location.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">I hope this blog post is useful for you. Do write your inputs in the comments section.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Thanks & Regards,</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Munjal</span></div>
</div>
Anonymoushttp://www.blogger.com/profile/06638141290420039813noreply@blogger.com0tag:blogger.com,1999:blog-3525785668738971940.post-27415516134142513672013-10-04T02:03:00.000-07:002013-10-04T02:03:35.193-07:00URL Routing in ASP.Net Web Forms Part - 3 - URL Routing versus URL Rewriting<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">ASP.NET routing differs from URL rewriting. URL rewriting processes incoming requests by actually changing the URL before it sends the request to the Web page. For example, an application that uses URL rewriting might change a URL from /Products/Widgets/ to /Products.aspx?id=4. Also, URL rewriting typically does not have an API for creating URLs that are based on your patterns. In URL rewriting, if you </span><span style="font-family: Verdana, sans-serif;">change a URL pattern, you must manually update all hyperlinks that contain the original URL.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">With ASP.NET routing, the URL is not changed when an incoming request is handled, because routing can extract values from the URL. When you have to create a URL, you pass parameter values into a method that generates the URL for you. To change the URL pattern, you change it in one location, and all the links that you create in the application that are based on that pattern will automatically use the new pattern.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Thanks and Regards,</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">Munjal</span></div>
</div>
Anonymoushttp://www.blogger.com/profile/06638141290420039813noreply@blogger.com0tag:blogger.com,1999:blog-3525785668738971940.post-59848406536113027192013-10-04T00:12:00.002-07:002013-10-04T00:12:55.457-07:00URL Routing in ASP.Net Web Forms Part - 2<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Verdana, sans-serif;">In my previous post, I introduced the concept of URL Routing in ASP.Net. Now, let's look at the practical implementation for the same.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">In a Web Forms application, you need to define routes in the <b>Global.asax</b> file. Following example shows how the routes are defined in the <b>Global.asax</b> file:</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">// Create a Method to register routes and call that methos in Application_Start event of Global.asax file.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="color: blue; font-family: Verdana, sans-serif;">public static void RegisterRoutes(RouteCollection routeCollection)</span><br />
<span style="color: blue; font-family: Verdana, sans-serif;"> {</span><br />
<span style="color: blue; font-family: Verdana, sans-serif;"> routeCollection.MapPageRoute("ProductDetail", "product/{productname}", "~/productdetail.aspx");</span><br />
<span style="color: blue; font-family: Verdana, sans-serif;"> routeCollection.MapPageRoute("ProductList", "products/{categoryname}/{subcategoryname}", "~/products.aspx", true, new RouteValueDictionary { { "categoryname", "Books" }, { "subcategoryname", </span><br />
<span style="color: blue; font-family: Verdana, sans-serif;"><br /></span>
<span style="color: blue; font-family: Verdana, sans-serif;">"Biography" } });</span><br />
<span style="color: blue; font-family: Verdana, sans-serif;"> }</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="color: blue; font-family: Verdana, sans-serif;">void Application_Start(object sender, EventArgs e)</span><br />
<span style="color: blue; font-family: Verdana, sans-serif;"> {</span><br />
<span style="color: blue; font-family: Verdana, sans-serif;"> RegisterRoutes(RouteTable.Routes);</span><br />
<span style="color: blue; font-family: Verdana, sans-serif;"> }</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">In the above code 2 routes are defined in the <b>routeCollection</b> object using MapPageRoute Method. Generally <b>MapPageRoute</b> takes 3 parameters <b>(routeName,routeUrl,physicalFile)</b>. Alternatively, if we want to </span><span style="font-family: Verdana, sans-serif;">provide default values to the parameters of RouteURL, you can pass a <b>RouteValueDictionary</b> which is used to assign default values to the URL parameters. In the above example, the second route has URL set </span><span style="font-family: Verdana, sans-serif;">as products/{categoryname}/{subcategoryname} and the default values for {categoryname} and {subcategoryname} are set using <b>RouteValueDictionary</b>.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">RegisterRoutes() method need to be called in the <b>Application_Start</b> event, so that routes get registered when on the application start.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Generally, using querystring the above thing is implemented as mentioned below:</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="color: blue; font-family: Verdana, sans-serif;">productdetail.aspx?productname=5 point someone</span><br />
<span style="font-family: Verdana, sans-serif;">OR</span><br />
<span style="color: blue; font-family: Verdana, sans-serif;">products.aspx?categoryname=Books&subcategoryname=Biography</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">To Send request to the Routed page you can use <b>Response.Redirect</b> or <b>Response.RedirectToRoute</b>.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">In the above example, you need send request as given below:</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="color: blue; font-family: Verdana, sans-serif;">Response.RedirectToRoute("ProductDetail", new { productname = "5 point someone" });</span><br />
<span style="color: blue;"><span style="font-family: Verdana, sans-serif;">Response.</span><span style="font-family: Verdana, sans-serif;">RedirectToRoute</span><span style="font-family: Verdana, sans-serif;">("ProductList", new { categoryname = "Books", subcategoryname = "Biography" });</span></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">You can also use the Response.Redirect:</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="color: blue; font-family: Verdana, sans-serif;">Response.Redirect("product/5 point someone");</span><br />
<span style="color: blue; font-family: Verdana, sans-serif;">Response.Redirect("products/Books/Biography");</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">But, the preferrable method is Response.</span><span style="font-family: Verdana, sans-serif;">RedirectToRoute</span><span style="font-family: Verdana, sans-serif;">().</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">For getting the parameter values passed on the destination page you need to use Page.RouteData.Values[""]. In the above example, values will be retrieved as given below:</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="color: blue; font-family: Verdana, sans-serif;">string strProductName = Page.RouteData.Values["productname"].ToString();</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="color: blue; font-family: Verdana, sans-serif;">string strCategoryname = Page.RouteData.Values["categoryname"].ToString();</span><br />
<span style="color: blue; font-family: Verdana, sans-serif;">string strSubCategoryname = Page.RouteData.Values["subcategoryname"].ToString();</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">For more details you can check following links of MSDN:</span><br />
<span style="font-family: Verdana, sans-serif;"><a href="http://msdn.microsoft.com/en-us/library/cc668177.ASPX" target="_blank">http://msdn.microsoft.com/en-us/library/cc668177.ASPX</a></span><br />
<span style="font-family: Verdana, sans-serif;"><a href="http://msdn.microsoft.com/en-us/library/system.web.routing.routecollection.mappageroute.ASPX" target="_blank">http://msdn.microsoft.com/en-us/library/system.web.routing.routecollection.mappageroute.ASPX</a></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">I hope you found this article useful. Please feel free to give your inputs in the comments section.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Thanks & Regards,</span><br />
<span style="font-family: Verdana, sans-serif;">Munjal</span></div>
Anonymoushttp://www.blogger.com/profile/06638141290420039813noreply@blogger.com0tag:blogger.com,1999:blog-3525785668738971940.post-32334702904828348252013-10-02T12:16:00.000-07:002013-10-02T12:16:18.660-07:00URL Routing in ASP.Net Web Forms Part - 1<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Verdana, sans-serif;">Dear Friends,</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">With the start of development of a new project using ASP.Net Web Forms, the most important requirement of it was that the Web Portal to be developed must be SEO Friendly and thus it lead me to look for various options for the same.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Our Site can be made SEO Friendly by many ways like using friendly URLs, Div based html design and few other options. But, the most important of it was the use of friendly URLs. In the MVC architecture, this feature is inbuilt but if you need to develop the portal using ASP.Net Web Forms, you need to implement the ASP.Net Routing concept.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Few of the benefits of using URL Routing are mentioned below:</span><br />
<br />
<ul style="text-align: left;">
<li><span style="font-family: Verdana, sans-serif;">Help in SEO (Search Engine Optimization) and hence improve page hits by putting relevant keywords in the URL.</span></li>
<li><span style="font-family: Verdana, sans-serif;">Users are becoming more tech savvy and find directly manipulating the URL easier than inputting text boxes and clicking buttons.</span></li>
<li><span style="font-family: Verdana, sans-serif;">Short and easy to type URLs are good.</span></li>
<li><span style="font-family: Verdana, sans-serif;">URLs are persistent i.e. users do not want to rely on your page names and folder structure when application is accessed. For e.g. if a user bookmarks a page and for some reasons developer need to restructure the code files. User might not get to the same page through the same bookmark.</span></li>
</ul>
<br />
<span style="font-family: Verdana, sans-serif;">For Example, generally, if we need to pass parameters from one page to another using ASP.Net we will be using querystring in the URL as given below,</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">"products.aspx?category=mobile"</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">But, using the URL Routing, we need to use</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">"products/mobile"</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Search engine does not consider any value after ".aspx" in its listing, but using URL Routing, it is now possible to keep any keywords which can be crawled by the web crawler. Moreover, every search engine gives first preference to URL while searching any keywords.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">I hope you liked the article. I will be posting the exact implementation of URL routing in the Part-2 of this blog series of URL Routing.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">You can give your inputs in the comments section.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Thanks,</span><br />
<span style="font-family: Verdana, sans-serif;">Munjal</span></div>
Anonymoushttp://www.blogger.com/profile/06638141290420039813noreply@blogger.com2