PDA

View Full Version : ادرس دهی تو در تو با routing



na3er-faraji
جمعه 20 بهمن 1391, 14:35 عصر
سلام دوستان . سایت زیر رو ببینید.
وقتی وارد گروه ها میشی آدرس یک حالت درختی پیدا میکنه. میخام ببینم به چه شکل اومده این آدرس دهی رو پیاده کرده.

http://kish.divar.ir/browse

مثلا روی املاک که میزنی آدرس به شکل زیر میشه
http://kish.divar.ir/browse/real-estate/

وبعد که روی خانه و آپارتمان که میزنی آدرس اینجوری میشه
http://kish.divar.ir/browse/real-estate/home-apartments/

یعنی آدرس جدید میره به آخر آدرس قبلی میچسبه. کسی راهنمایی میکنه چطور باید این شکل آدرس دهی رو پیاده کرد.

نکته : من با url routing هیچ مکلی ندارم. پس لطفا اون رو توضیح ندید. منظورم این آدرس دهی تو در تو هستش.

mohsen musavi
جمعه 20 بهمن 1391, 23:56 عصر
از پارامتر های optional استفاده کرده.
بعد تو page_load هم چک کرده که ببینه مقدار دارند یا خبر
اگر توجه کرده باشی تا دو مرحله بیشتر جلو نمیره.

routes.MapPageRoute("search-rout", "browse/{catName}/{itemName}", "~/Search.aspx", False,
New RouteValueDictionary(
New With {
.cat = System.Web.Http.RouteParameter.Optional,
.subCat = System.Web.Http.RouteParameter.Optional
}
)
)

na3er-faraji
شنبه 21 بهمن 1391, 00:30 صبح
ممنون از لطفتون. موقع ساخت آدرس باید به چه صورت عمل بشه؟
البته در قسمت های دیگه تا 3 قسمت هم من دیدم. مثلا این آدرس
http://kish.divar.ir/browse/personal/baby-and-toys/strollers-and-accessories/

یک چیز دیگه که برا من جالبه اینه که مگه نباید تو هر مرحله آخرین قسمت آدرس رو چک کنه و مثلا اگهی های اون بخش رو بیاره. بقیه ادرس یک حالت تزئینی داره. مثلا در همین مثال قسمت strollers-and-accessories آخرین قسمت آدرس هستش. اما اگه شما مثلا یک قسمت دیگه از آدرس رو هم تغییر بدید میفهمه و میره به صفحه 404
منظورم اینه که چه لزومیه که داره کل قسمت ها رو چک میکنه؟

mohsen musavi
یک شنبه 22 بهمن 1391, 00:40 صبح
برای ساخت آدرس :

Dim url As String = Page.GetRouteUrl("search-rout", New With {
.cat1=value1,
.cat2= valu2,
.cat3= Nothing
})

دلیل این کارش رو دقیقا نمیدونم.
ولی میتونه بخاطر معماری بانک اطلاعاتیش باشه یا اینکه برای search engine ها باشه(در web master tools مربوط به google شما میتونی چگونگی آدرس دهی سایت رو بیان کنی و راهنمایی بهتری از سایتت ارائه بدی.) و یا دلایل دیگر...
در هر صورت چون داره با رشته کار میکنه (نه ID) چک کردن هر سه بخش برای تایید اینکه آدرس اشتباه نمیباشد و از دسترس کاربر خارجش کنه، کار اشتباهی نیست.
به نظر من که ایراد داره.چون نمیتونه از نظر آدرس دهی search engine ها رو به درستی راهنمایی کنه و بایستی حتما یک قسمت توضیحات در انتهای آدرس به صورت فارسی ارائه میداد(چگونگی پیاده سازی این منطق؟) .
این نظر من بود و امیدوارم توهین به کسی نباشه و ممکنه دلایل منطقی از نظر تیم توسعه داشته باشه.

mohsen musavi
یک شنبه 22 بهمن 1391, 01:22 صبح
البته بنظر میاد سایت مذکور از تکنولوژی asp.net استفاده نکرده و با زبان دیگری برنامه نویسی شده.
درضمن در قسمت نام دامنه از subdomain های مجازی استفاده کرده که برای asp.net با همین routingو ... بصورت مجازی پیاده سازی میشه.

na3er-faraji
یک شنبه 22 بهمن 1391, 01:46 صبح
یک قسمت فارسی برای چی؟ اگه هر 3 قسمت رو فارسی میداد بهتر نبود. من میخام هر 3 قسمت رو فارسی ارائه بدم ولی فقط قسمت آخر رو چک کنم. ایا این کار درسته؟ یا همون انگلیسی بهتره. البته من برای این که فشار به بانک نیاد گروه ها رو تو یک فایل xml هم ذخیره کردم که هر وقت گروه ها تغییری پیدا میکنه اون فایل آپدیت میشه و میخام از داخل فایل بخونم. به نظر شما این روشی که من میگم خوبه؟

mohsen musavi
دوشنبه 23 بهمن 1391, 15:56 عصر
شما از ef + cashing استفاده کن
نوع پیاده سازی بستگی به دیدگاه شما داره.شما از id و توضیحات فارسی استفاده کن.توضیحات فارسی برای جستجوگر ها.اگر هدف شما بازار های خارجی نیز هست بایستی دیدگاهت را نسبت به زبان های مختلف ارائه بدی.