برگزیده های پرشین تولز

کمک برای کار با رشته ها و بدست آوردن مسیر صفحه جاری در asp.net

amir_3d_mad

Registered User
تاریخ عضویت
4 ژوئن 2007
نوشته‌ها
98
لایک‌ها
0
من میخوام مسیر صفحه جاری رو بدست بیارم و با کمی تغییرات مسیر Button انگلیسی و فارسی سایت رو جایگزین کنم .
به اینصورت که مثلا الان تو مسیر www.mysite.com/news/index.aspx هستیم .
خب حال با استفاده از دستور
کد:
[LEFT]Me.Page.Request.Url.LocalPath.ToString[/LEFT]
میشه همین مسیر رو بدست آورد ولی من نمیخوام www.mysite.com در این رشته باشه .
یعنی فقط مسیر صفحه جاری بدون نام دومین .
با دستو
کد:
[LEFT]System.IO.Path.GetFileName(System.Web.HttpContext.Current.Request.Url.AbsolutePath.ToString)[/LEFT]
هم میشه فقط نام صفحه رو بدست آورد ولی میسری که اون صفحه تو اون قرار داره رو به ما نمیده .
خلاصه میخوام مسیر صفحه جاری رو بدون نام دومین داشته باشم .
در مثال بالا من میخوام فقط رشته news/index.aspx رو بدست بیارم . چون ورژن انگلیسی همین صفحه در مسیر En/news/index.aspx هستش .
با هر کدی که امتحان کردم نشد .
لطفا منو راهنمایی کنید .
مرسی .
 

amin_lili

کاربر تازه وارد
تاریخ عضویت
24 آپریل 2007
نوشته‌ها
532
لایک‌ها
2
سن
43
محل سکونت
ای کاش آنجا ...
با این کد می تونی آدرس نسبی صفحه رو بدست بیاری
کد:
AppRelativeVirtualPath
مثلا با دستور زیر آدرس نسبی صفحه رو در خروجی نمایش می دیم
کد:
Response.Write(AppRelativeVirtualPath);
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
اولا میتونی با Replace ، آدرس سایت رو از توی استرنیگت حذف کنی و دوم اینکه حتی ممکنه بتونی کار تمیز تری هم بکنی یه توضیح کاملتر بده میخوای چیکار کنی تا بهتر راهنماییت کنیم :happy:

ضمنا اگر اشتباه نکنم Page.AppRelativeVirtualPath بهت باید یه همچین آدرسی بده مثلا :
کد:
"~/news/index.aspx "
 

amir_3d_mad

Registered User
تاریخ عضویت
4 ژوئن 2007
نوشته‌ها
98
لایک‌ها
0
راستش کاری که میخوام بکنم اینه که :
من کل سایتم که در مسیر root هستش ، عین همون صفحات با همون نام ها توی مسیر root/En هست ولی انگلیسیشونه و یه نکته دیگه اینکه من برای همه صفحه هام از یه MasterPage هم استفاده کردم که دکمه های En و Fa توی MasterPage قرار داره .
حالا برای اینکه موقع زدن دکمه En ، صفحه منتقل بشه به آدرس انگلیسیش که در مسیر En قرار داره ولی اسم صفحه همونه ، من میخوام موقع PageLoad آدرس مسیر صفحه جاری رو بگیره ، بعد چک کنه ببینه اگه آدرس با En شروع میشه ، به دکمه ی Fa همون مسیر بدون En بده و اگه جلوی آدرس En نباشه ، به دکمه ی En آدرس مسیر صفحه جاری رو با یه En جلوی اون بده .
بعد از کمی ور رفتن با کدها ، تونستم با این کد این کار رو انجام بدم . ولی به قول شما میخوام یه کار تر و تمیزتر انجام بدم .
از این کد زیاد خوشم نیومد :
کد:
[LEFT]    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim pageurl As String = Me.Page.Request.Url.PathAndQuery.ToString
        If Left(pageurl, 3) Like "/En" Then
            Ir.PostBackUrl = ("~" + Mid(pageurl, 4))
        Else
            En.PostBackUrl = ("~/En" + pageurl)
        End If
    End Sub[/LEFT]
 
بالا