PDA

View Full Version : URL Rewriting in ASP.NET 4



saeed31641
شنبه 18 آذر 1391, 21:13 عصر
سلام
من میخام با URL Rewriting in ASP.NET 4
تمامی صفحاتی که تو یه دایرکتوری هست رو با ایه اسم تو ادرس بار نشون بده
مثلا
www.a.ir/admin/defualt.aspx
تمامی صفحاتی که تو پوشه Admin هست اگه فراخوانی شود تو ادرس بار اینصوری نشون بده
Www.a.ir/default.aspx

powerdangerouseb
شنبه 18 آذر 1391, 22:21 عصر
با دورد

دوست عزیز بیا یک نمونه برات نوشتم که خودتم اگه دوست داشتی تغییرش بده ؟؟؟/

ببین به درد می خوره ؟؟؟؟؟؟

لینک دانلود : پروژه (http://hidelion.com/Downloads/Asp/Hidelion_Url.zip)

رمز : www.hidelion.com


اگر هم ایرادی بود بگو در خدمتم

پاینده باشی

saeed31641
یک شنبه 19 آذر 1391, 07:47 صبح
لطفا درباره کدهای ب کانیفک توضیح بده اصلا لازمه اون کدا باشه.چ.ن خطا میده .برنامه رو شما خودتون اجرا کردی واسعه من صفحات نمیاره .خطلای پیدا نکردن صفحه می دهد

M.D.A_M.D.A
یک شنبه 19 آذر 1391, 16:58 عصر
برنامه اجرا میشه خطا هم نداره.
کدهای داخل web.config هم ارتباطی با این کار نداره
کد های داخل Global.asax این کار رو انجام میدن

orca13
یک شنبه 19 آذر 1391, 17:13 عصر
در ورژن 4 از Routing استفاده کنی که بهتر و ساده تره!
آموزشش هم تو سایت هست!

powerdangerouseb
یک شنبه 19 آذر 1391, 21:57 عصر
با درود

دوست عزیز حق با دوست عزیزم M.D.A_M.D.A (http://barnamenevis.org/member.php?168295-M.D.A_M.D.A) است web.confing هیچ ربطی به برنامه ندارد باید با کد های داخل Global.asax را بررسی کنی
من دوباره پروژه را دانلود کردم هیچ ایرادی نبود

ولی به هر حال برای راهنمایی بیشتر

کدی که در Global.asax برای حذف کردن و .... پسوند پیج ها یا فلدر ها و ....

برای شروع باید فایل Global.asax را باز کرده و در قسمت Application_Start کد های زیر را بنویسید






void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
System.Web.Routing.RouteTable.Routes.MapPageRoute("AddCategory", "Add-Category", "~/Admin/Add-Category.aspx");
System.Web.Routing.RouteTable.Routes.MapPageRoute("CreatePage", "CreatePage", "~/Admin/CreatePage.aspx");
System.Web.Routing.RouteTable.Routes.MapPageRoute("Main", "Default", "~/Admin/Default.aspx");


}


به روش زیر باید پیج ها را لینک بندی کنید

<div>
<a href="Add-Category">Admin/Add-Category.aspx</a>
<br />
<a href="CreatePage">Admin/CreatePage.aspx</a><br />
<a
href="Default">Admin/Default.aspx</a>


</div>



اگر باز هم پرسش و ایرادی بود بفرمایید در خدمت هستم

saeed31641
سه شنبه 21 آذر 1391, 22:46 عصر
خدمتون عرض کنم من میخام این ادرس رو به http://localhost/AdminMgmt/Hardware/HType/HardwareType.aspx
این ادرس تبدیل کنم
http://localhost/HardwareType.aspx
جواب نمیده اینم کدها.لطفا بررسی کنید
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
System.Web.Routing.RouteTable.Routes.MapPageRoute("HardwareType", "Hardware/HType/HardwareType", "~/AdminMgmt/Hardware/HType/HardwareType.aspx");
}


لینکم از نوع لینک باتون.

<asp:LinkButton ID="Linadd" runat="server" CssClass="linkspanAdd" Height="30px" Width="30px" style="text-decoration: none" PostBackUrl="~/AdminMgmt/Hardware/HType/HardwareType.aspx"><span class="tooltip"><span class="top"></span><span class="middle">ثبت قطعات</span> <span class="bottom"></span></span>
</asp:LinkButton>

powerdangerouseb
چهارشنبه 22 آذر 1391, 00:32 صبح
با درود
دوست عزیز خوب باید هم درست نشان نده قطعا همان آدرس قبلی را نشان خواهد داد

دوست عزیز شما همه مراحل را درست رفتی به جز یک جا

اگر شما می خواهید لینکی را به صفجه ای متصل کنید نباید از خود آدرس اصلی استفاده کنید اگر دقت کنید شما در کنترل LinkButton لینک اصلی خود آدرس پیج را داده اید خیر این کار را نباید بکنید !!!
شما باید آدرسی را در لینک قرار دهید که در RouteTable قرار داده اید

الان شما پیجی که می خواهید این اعمال روی آن انجام شود پیج زیر است

~/AdminMgmt/Hardware/HType/HardwareType.aspx

و شما می خواهید که کاربر آدرس زیر را مشاهده کند

Hardware/HType/HardwareType

پس شما باید لینک خود را با همین آدرس جدید پیوند دهید
مثل نمونه ی زیر



<a href="Hardware/HType/HardwareType">This is my page :D</a>


این کار را انجام دهید به احتمال 99% درست می شود

اگر هم باز ایرادی بود بفرمایید درخدمت هستم

saeed31641
چهارشنبه 22 آذر 1391, 08:17 صبح
قربون صفاتون بشم اینقدر با معرفتی که وقت می زارید برای جواب.

خوب چند تا مشکل دیگه هست که اگه زحمت نیست میگم.
1- اگه داخل هاست بزاری مشکل ایجاد نمیکنه. فکر کنم باز یه کارایی بکنی
2- برای تمامی صفحاتم که میخام باید همین کار بکنم.
3-برای لینک های گرید ویو چطوری باید لینک کنم

saeed31641
چهارشنبه 22 آذر 1391, 08:33 صبح
ببینی بچه من دو سایت نرم افزار تحت وب براتون معرفی میکنم شما لطفی بکینی بگین اینا چطوری کار میکنه که کاربر ادرس بار نمی بینه. همشم تو یه ادرس بار هست.
http://http://helpwism.febpco.com (http://helpwism.febpco.com)


www.rayanidehnegar.ir/cmms (http://www.rayanidehnegar.ir/cmms)



User Name: DEMO
Password: DEMO
با تشکر

powerdangerouseb
دوشنبه 27 آذر 1391, 19:06 عصر
ببخشید دیر پاسخ دادم خیلی سرم شلوغ بود

پاسخ های پرسش های شما

1 : خیر هیچ ربطی ندارد در هاست هم کار می کنم ولی می تونی یک پروژه کوچیک درست کنی بفرستی بالا ببین کار می کنه یا نه ولی 99% کار می کنه
2 : بله باید برای تمامی پیج ها همین کار رو کرد
3 : برای گرید ویو هم شما می توانید یکی از راه ها این است که گرید ویو را خودت تنظیمات رو انجام دهی



در باره پست دومت دوست عزیز اگر می خواهی مثل این سایت http://helpwism.febpco.com/ درست کنی خوب می تونی از تگ iframe در html استفاده کنی بدون نیاز به url rewriting





بازم پرسشی بود در خدمتم

blackcats
دوشنبه 27 آذر 1391, 20:46 عصر
پست خیلی خوبی هست.
سوالی که من دارم میریت کوئری استرینگ چطور ممکنه؟
یعنی مدیریت آدرس مشابه زیر


wwww.test.ir/ShowList.aspx?TB=0&ID=9&kind=0&lang=0


چطور میتونیم یک مقدار خوشگل ترش بکنیم!
تا اینجای پست میشه showlist.aspx رو درست کرد اما با کوئری استرینگ ها چطور میشه برخورد کرد

M.D.A_M.D.A
دوشنبه 27 آذر 1391, 20:55 عصر
http://msdn.microsoft.com/en-us/library/cc668201.aspx

blackcats
دوشنبه 27 آذر 1391, 22:16 عصر
کامل مشکلم رو بر طرف کرد ممنون از همه دوستان

saeed31641
دوشنبه 27 آذر 1391, 23:07 عصر
راستش بچه ها بنظرم این rewriting زیاده اصلا جالب نیست برای پروژهای که زیاد پیج داره. من دنبای لین بدم که تمامی صفحات که از مسیر a میره تبدیل بشه به مسیر b دیگه نیام واسع همهی صفحات بنویسم
a:www.sd.com/ali/amir/.d.aspx
b.www.sd.com/d.aspx

hoda mohammadi
پنج شنبه 21 آذر 1392, 22:51 عصر
با سلام و خسته نباشی خدمت دوستان عزیز
متاسفانه من تمام این مراحلی که شما گفتین و رفتم ولی یه مشکل بزرگ دارم اونم اینه که من دو صفحه دارم که یکیش مثلا a.ir/news.aspx می باشد و دیگری a.ir/news_view.aspx?id=1&title=xxxxx می باشد.
وقتی من در web.config برای هر دو صفحه routeMap می سازم ، مثلا برای اولی میگم a.ir/news . برای دومی میگم a.ir/news/1/xxxxx ، صفحه اول و که باز می کنم ، باز میشه ولی وقتی روی لینکی که صفحه دوم و باز میکنه کلیک میکنم، آدرس و ادامه آدرس قبلی میزنه و کلا میگه صفحه وجود ندارد یا رو همان صفحه اول می ماند. خواهشمندم راهنماییم کنید. خیلی برام مهم است که درستش کنم.
ممنون میشم کمکم کنید

shima and pariya
پنج شنبه 21 آذر 1392, 23:13 عصر
اين لينكو ببين خيلي ساده ميتوني ازش استفاده كني.من استفاده كردم تو هاستم مشكل نداره
(http://www.dotnettips.info/post/1470/urlrewriter-%D8%AA%D9%88%D8%B3%D8%B7-intelligencia-urlrewriter)

hoda mohammadi
شنبه 23 آذر 1392, 15:15 عصر
با سلام
اجازه بدین مشکلمو واضح تر بیان کنم
من الان مراحل این لینکیو که فرستاده بودید را رفتم و در قسم urlrewite آن نوشتم:


<rewriter>

<rewrite url="^.*news" to="news.aspx" processing="stop" />

</rewriter>
یعنی می خواهم وقتی روی لینکی با آدرس a.ir/news.aspx کلیک کردم به صورت a.ir/news نمایش بدهد.
ولی وقتی روی لینک کلیک میکنم ارور The resource cannot be found.

می دهد.
تورو خدا راهنماییم کنید. الگوی نوشتنم به احتمال زیاد غلطه