آژانس هواپیمایی
pop up

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

شروع موضوع توسط amir_3d_mad ‏2 دسامبر 2007 در انجمن asp , ASP.NET

  1. amir_3d_mad

    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 هستش .
    با هر کدی که امتحان کردم نشد .
    لطفا منو راهنمایی کنید .
    مرسی .
     
  2. amin_lili

    amin_lili کاربر تازه وارد

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

    H_R مدیر بازنشسته

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

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

    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]