PDA

View Full Version : نحوه ی تعریف چندین روتینگ برای یک صفحه ؟



nice_boy_a
سه شنبه 04 فروردین 1394, 14:25 عصر
سلام دوستان. سال نو مبارک.
یکی از تاپیک های همین سایت رو خوندم که گفته بود به صورت زیر میشه چندین روتینگ برای یک صفحه درست کرد:


System.Web.Routing.RouteTable.Routes.MapPageRoute("home", "home", "~/MyFolder/home.aspx");
System.Web.Routing.RouteTable.Routes.MapPageRoute("home", "home/{Product}", "~/MyFolder/home.aspx");
System.Web.Routing.RouteTable.Routes.MapPageRoute("home", "home/{Product}/{Name}", "~/MyFolder/home.aspx");


وقتی این کدها رو اجرا میکنم خطا میده :


A route named 'home' is already in the route collection. Route names must be unique


کدها رو به صورت زیر اصلاح میکنم و جواب میده (پارامتر اول رو حذف کردم):


System.Web.Routing.RouteTable.Routes.MapPageRoute("", "home", "~/MyFolder/home.aspx");
System.Web.Routing.RouteTable.Routes.MapPageRoute("", "home/{Product}", "~/MyFolder/home.aspx");
System.Web.Routing.RouteTable.Routes.MapPageRoute("", "home/{Product}/{Name}", "~/MyFolder/home.aspx");


مشکل اینجاست، وقتی که آدرس
MySite/Home
رو میزنم خطای

HTTP Error 403.14 - Forbidden
The Web server is configured to not list the contents of this directory.

رو میده
ولی با آدرس زیر اصلا خطا نمیده
MySite/Home/Parameter

مشکل از کجاست ؟

malloc
سه شنبه 04 فروردین 1394, 15:00 عصر
سلام .... شاید اگه مثل زیر بنویسی مشکلت برطرف بشه :


System.Web.Routing.RouteTable.Routes.MapPageRoute( "", "home", "~/MyFolder/home.aspx");
System.Web.Routing.RouteTable.Routes.MapPageRoute( "", "home/Product/{Product}", "~/MyFolder/home.aspx");
System.Web.Routing.RouteTable.Routes.MapPageRoute( "", "home/Info/{Product}/{Name}", "~/MyFolder/home.aspx");

nice_boy_a
سه شنبه 04 فروردین 1394, 15:30 عصر
ممنون دوست عزیز. من با روتینگ اول مشکل دارم!

تازه مشکل اساسی رو متوجه شدم!
اسم MyFolder رو هم نام روتینگ گذاشتم، یعنی :


System.Web.Routing.RouteTable.Routes.MapPageRoute( "", "home", "~/home/home.aspx");
System.Web.Routing.RouteTable.Routes.MapPageRoute( "", "home/{Product}", "~/home/home.aspx");
System.Web.Routing.RouteTable.Routes.MapPageRoute( "", "home/{Product}/{Name}", "~/home/home.aspx");
وقتی آدرس MySite/Home رو میزنم خطا میده!
فکر کنم واسه همینه که اون خطا رو میده! تشخیص نمیده که روتینگه،فکر میکنه اسم پوشه ست (که درست فکر میکنه:لبخند:)!
واسه رفع این مشکل باید چیکار کرد؟ (میخوام روتینگ با پوشه هم نام باشن، چون اگه نباشن آدرس دهی فایل های جاوا به هم میخوره...!)

arashnaderi
پنج شنبه 06 فروردین 1394, 20:25 عصر
سلام
ظاهرا همه چی درسته
فیلد اول رو هم درست کنید ببینید مشکل از اون نیست
به این صورت:


System.Web.Routing.RouteTable.Routes.MapPageRoute( "home1", "home", "~/home/home.aspx");

System.Web.Routing.RouteTable.Routes.MapPageRoute( "home2", "home/{Product}", "~/home/home.aspx");

System.Web.Routing.RouteTable.Routes.MapPageRoute( "home3", "home/{Product}/{Name}", "~/home/home.aspx");



باید اسامی بکار گرفته شده در فیلد اول، منحصر بفرد باشه