PDA

View Full Version : جستجوی داده انتهای لینک



quantomquery
یک شنبه 08 بهمن 1391, 11:26 صبح
سلام

میخوام وقتی آدرس سایت رو به صورت زیر بزنم عدد آخر لینک رو بگیره و تو دیتابیسم بگرده.

http://mysite.com/25

من اینو با کنترل خطا در global.asax و Application_Error پیاده سازی کردم و جواب هم گرفتم

ولی یه حسی به من میگه این راه اصولی نیست .
می خوام بدونم آیا روش دیگه ای هست که بشه این کار رو بدون استفاده از global.asax پیاده سازی کرد ؟

quantomquery
یک شنبه 08 بهمن 1391, 15:46 عصر
دوستان حال پاسخ دادن ندارن یا اینکه با این سبک کار نکردن

quantomquery
یک شنبه 08 بهمن 1391, 21:16 عصر
این همه سایت داره از این روش استفاده می کنه

یعنی هیچکدوم از دوستان از این روش استفاده نکرده که مستقیم از لینک داده رو بخونن و یه راهنمایی بکنن

مدیران دستم به دامنتان

حداقل یه چیزی بگید بدونم اصلا دنبال چی بگردم ؟؟؟!!!

amirsajjadi
دوشنبه 09 بهمن 1391, 01:13 صبح
سلام
چند تا روش داره.
url mapping , url rewrite, کلک رشتی!.
من خودم چند وقت پیش پروژه ای رو نوشتم که مثل شما نیاز بود که هر مقداری رو که جلوی آدرس میاد توی بانک سرچ کنه و بعد اون رو به یک آدرس مشخص هدایت کنه.
اگه بخوای از روش استاندارد asp.net استفاده کنی و کاربر رو به یک آدرس مشخص هدایت کنی باید از url rewrite استفاده کنی.
اگر نه بخوای فقط جستجو انجام بشه و آدرس تغییری نکنه و کاربر در همون صفحه باقی بمونه باید از url mapping استفاده کنی.
حالا میرسیم به اون کلک رشتی که خودم استفاده کردم توی پروژم و درد سر زیادی هم نداره! (استاندارد مایکروسافت نیست)، استفاده از خطای 404 هست به این صورت که اگر صفحه ای پیدا نشد اونو به صفحه جستجو پاس بده به اینصورت :
اول توی فایل web.config و در قسمت مدیریت خطاها مینویسی :


<customErrors mode="On">
<error statusCode="404" redirect="CheckNameAlias.aspx" />
</customErrors>

بعد توی تنظیمات هاستت توی قسمت تنظیمات مربوط به وب سایت و در قسمت custom errors خطای 404 رو انتخاب میکنی و نوع Handler Type اونو Execute URL انتخاب میکنی(البته اینکار رو میتونی توی web.config هم انجام بدی). مثل تصویری که ضمیمه کردم.
و حالا توی اون صفحه ی جستجو (که اینجا صفحه CheckNameAlias) یک تابع مینویسی به اینصورت :


Private Function GetAliasNameFromURL() As String
Dim s As String = Request.Url.AbsoluteUri
Return Mid(s, InStrRev(s, "/") + 1)
End Function

و حالا توی فرم لود صفحه مینویسی:


Dim n As String = Trim(GetAliasNameFromURL())

If InStr(n, ".") > 0 Then Exit Sub

msgbox(n)

:گیج:
امیدوارم گیج نشده باشی !
حالا انتخاب با خودت هست.