مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

kaveh.norozi

عضویت از 1394/11/30

سوال در مورد Routing در mvc

  • چهارشنبه 25 مرداد 1396
  • 10:13
تشکر میکنم

سلام

جهت اعمال کلمات کلیدی، title و توضیحات در هر صفحه من از روش زیر استفاده کردم!

یه کلاس دارم که Url رو میگیره و از دیتابیس اطلاعات رو میاره!

الان مشکل من اینه که نمیتونم مقدار id رو همراه url به کلاس پاس بدم!

مقدار کنرتلر و اکشن رو میتونم ولی id نه

    @{
        string currentUrl = Url.RequestContext.RouteData.Values["controller"] + "/" + Url.RequestContext.RouteData.Values["action"] + "/" + Url.RequestContext.RouteData.Values["id"];
        @(Html.Raw(SihadSystem.PageMetaDetailClass.UpdateMetaDetails(currentUrl)));
    }

من این خط رو تو _Layout نوشتم ولی چیزی که به کلاس ارسال میشه /Home/Index/ هست و مقدار id تو صفحاتی که id داره ارسال نمیشه

پاسخ های این پرسش

تعداد پاسخ ها : 7 پاسخ
کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • چهارشنبه 25 مرداد 1396
  • 11:41

با استفاده از کد زیر URL جاری را به دست آورید:

HttpContext.Current.Request.RawUrl

کاربر سایت

kaveh.norozi

عضویت از 1394/11/30

  • چهارشنبه 25 مرداد 1396
  • 12:27

این کد ظاهرا تو mvc جواب نمیده!!!!!

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • چهارشنبه 25 مرداد 1396
  • 12:29
@Request.RequestContext.HttpContext.Request.RawUrl

کاربر سایت

kaveh.norozi

عضویت از 1394/11/30

  • چهارشنبه 25 مرداد 1396
  • 12:46

این فقط مقدار Action رو برمیگردونه و controller و id رو برنمیگردونه

مثلا اگه اینجوری باشه:

mysite.ir/panorama/Preview/10

مقداری که برمیگرده /panorama و کامل برنمیگردونه!!!!!!!

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 25 مرداد 1396
  • 12:55

کد زیر را امتحتن کنید

Request.Url.AbsoluteUri

کاربر سایت

kaveh.norozi

عضویت از 1394/11/30

  • چهارشنبه 25 مرداد 1396
  • 13:00

با این کد مقدار برگشتی:

زیاد فرقی نکرد ، فقط آدرس سایتو هم نوشت

من میخام اسم کنترلر، اسم اکشن و آیدی که تو route مشخص شده بیاد برای قسمت کلمات کلیدی میخام اینو

قبلا اینو نوشته بودم و اسم کنترلر و اکشن درست بود

string currentUrl = Url.RequestContext.RouteData.Values["controller"] + "/" + Url.RequestContext.RouteData.Values["action"] ;

ولی id هرجوری نوشتم نشد

این رو هم امتحان کردم ولی نشد :

string currentUrl = Url.RequestContext.RouteData.Values["controller"] + "/" + Url.RequestContext.RouteData.Values["action"] + "/" + Url.RequestContext.RouteData.Values["id"] ;

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 25 مرداد 1396
  • 13:04

کد زیر رو تست کردم درست جواب میده

<h2>@Request.Url.AbsolutePath</h2>

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

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

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)