سلام
جهت اعمال کلمات کلیدی، 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 داره ارسال نمیشه
با استفاده از کد زیر URL جاری را به دست آورید:
HttpContext.Current.Request.RawUrl
این کد ظاهرا تو mvc جواب نمیده!!!!!
@Request.RequestContext.HttpContext.Request.RawUrl
این فقط مقدار Action رو برمیگردونه و controller و id رو برنمیگردونه
مثلا اگه اینجوری باشه:
mysite.ir/panorama/Preview/10
مقداری که برمیگرده /panorama و کامل برنمیگردونه!!!!!!!
کد زیر را امتحتن کنید
Request.Url.AbsoluteUri
با این کد مقدار برگشتی:
زیاد فرقی نکرد ، فقط آدرس سایتو هم نوشت
من میخام اسم کنترلر، اسم اکشن و آیدی که تو 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"] ;
کد زیر رو تست کردم درست جواب میده
<h2>@Request.Url.AbsolutePath</h2>
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)