چگونه ميتوان نام صفحات و پسوند آنها رادرهنگام نمايش در آدرس بار مخفي و يا عوض كرد؟
دوستان سلام
ميخواستم ببينم چطور ميشه نام صفحات را درهنگام نمايش آنها در آدر بار نشان نداد و يا تغيير داد؟
در اينترنت جستجو كه كردم به كد زير برخوردم ولي متاسفانه جواب نداد. حتي در سايت مايكروسافت هم توضيحاتي داده شده بود ولي بازم نتونستنم .
لطفا اگر كسي ميدونه راهنمايي كنه.
سپاس
<configuration> <system.webserver> <rewrite> <rules> <rule name="RemoveASPX" enabled="true" stopProcessing="true"> <match url="(.*)\.aspx" /> <action type="Redirect" url="{R:1}" /> </rule> <rule name="AddASPX" enabled="true"> <match url=".*" negate="false" /> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> <add input="{URL}" pattern="(.*)\.(.*)" negate="true" /> </conditions> <action type="Rewrite" url="{R:0}.aspx" /> </rule> </rules> </rewrite> </system.webserver> </configuration>
شما برای تغییر نام آدرس صفحه خودتون می تونید از Routing استفاده کنید :
مهندس باقرزاده عزيز
سلام
قبل از هرچيز خيلي سپاسگزارم بابت سرعت عمل جنابعالي در پاسخگويي كه مطمئناً از حس مسئوليت پذيري مديران اين سايت ناشي ميشود.
من كد مربوطه را دانلود كردم و پس از اجرا طبق شكل زير اجرا شد.
چطور ميشه نام دلخواه را پاس كرد چون من هر كاري كرد نشد!!! و كلا چطور ميشه پارامتر رو از طريق بانك اطلاعاتي پاس كرد؟
سپاسگزارم
خواهش میکنم.
من تصویری در این تاپیک ندیدم، لطفا فایل ضمیمه خودتون را به صورت ZIP شده ارسال کنید.
شما وقتی برای یک صفحه Rout تعریف میکنید، باید داخل AddressBar هم طبق همون آدرس مسیر دهی کنید. برای مثال :
localhost:1915/Name/MyNameOrTitle
برای آشنایی بیستر با MapRouting مقاله زیر را مطالعه بفرمایید:
ببخشيد مهندس،
با عرض شرمندگي دقيقا متوجه نشدم !!!
فرض كنيم ميخواهم نام نشان داده شده را به MyPage تغيير دهم حال ميبايست در Page_Load كد زير را واد كنم:
protected void Page_Load(object sender, EventArgs e) { if(Page.RouteData.Values["Name"]!=null) { Label2.Text = Page.RouteData.Values["MyPage"].ToString(); } }
يا در فايل Global.asax كد زير را بنويسم :
public static void RegisterRoutes(RouteCollection routes) { routes.MapPageRoute("MyPage", "localhost:1915/", "~/Default.aspx"); } protected void Application_Start(object sender, EventArgs e) { RegisterRoutes(RouteTable.Routes); }
كه در هردو صورت جواب نداد.از طرفي اگر بجاي "~/Default.aspx" آدرس كامل بگذاريم بدليل استفاده از VirtualPath خطا ميدهد.
لطفا ميشه راهنمايي بفرماييد.
سپاسگزارم
public static void RegisterRoutes(RouteCollection routes) { routes.MapPageRoute("MyPage", "ShowPage/{MyPage}", "~/Default.aspx"); }
با نام را در آدرس وارد کنید
الان در کد بالا اون {MyPage} پارامتر شما هست
آدرس هم به شکل زیر میشه
localhost:1915/ShowPage/پارامتر دلخواه
شما داخل صفحه Global.asax نام و آدرس صفحه و نام Routing مربوط به ان صفحه را نوشتید :
routes.MapPageRoute("Parameters", "Name/{Name}/", "~/Default.aspx");
در اینجا Name یک عنوان ثابت و {Name} دوم که داخل {} قرار دارد متغیر شما ست. زمانی که می خواهید صفحه ای که Routing را روی آن انجام دادید و متغیر خود را به آن صفحه از طریق آدرس صفحه ارسال کردیم را بگیرید از کد زیر استفاده کنید :
if(Page.RouteData.Values["Name"]!=null) { Label2.Text = Page.RouteData.Values["Name"].ToString(); }
که ما اینجام در Page_Load صفحه این کار را انجام داده ایم.
برای روشن تر شدن موضوع برای شما لینک قبلی را که ارسال کردم مطالعه بفرمایید.
با تشكر
بالاخره با كد زير حل شد.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)