دسترسی به یک viewBag در تمام ویوها
با سلام
یک مسئله ای که تمام وب سایت های در حال توسعه با هاش درگیر هستند اینه که شما باید لینک های سایتتون رو جوری مقدار دهی کننین که هم در تست لوکل مشکلی پیش نیاد و هم در سرور لینکها در اولشون آدرس سایت رو داشته باشن تا موتورهای حستجو اونها رو به عنوان لینک شکسته نبینن! مثلا blog/detail/1/ از نظر گوگل لینک شکستست. اما www.domainName.ir/blog/detail/1 یک لینک درسته. حالا اگر این لینک در لوکال باشه شما نمیتونید اون صفخات رو در لوکل ببینید. حالا واسه حل این مشکل لازمه تا دامین فعلی چه لوکل چه دامین ، رو در تمام ویو ها بهش دسترسی داشته باشیم.شاید با ViewBag بشه این کار رو انجام داد.
if (!Request.IsLocal) {
ViewBag.preHref = "www.domain.ir/";
}
اگر دوستان راه حلی دارید لطفا راهنمایی کنید.
با تشکر
نقل قول: دسترسی به یک viewBag در تمام ویوها
اگر فقط مشکلتون دسترسی به ViewBag در تمام صفحه ها هست ، ViewBag رو داخل Layout ست کنید .
برای گرفتن نام دامین سایت بطور Dynamic هم از این کد میتونید استفاده کنید :
System.Web.Hosting.HostingEnvironment.ApplicationH ost.GetSiteName();
نقل قول: دسترسی به یک viewBag در تمام ویوها
نقل قول:
نوشته شده توسط
Moien Tajik
اگر فقط مشکلتون دسترسی به ViewBag در تمام صفحه ها هست ، ViewBag رو داخل Layout ست کنید .
برای گرفتن نام دامین سایت بطور Dynamic هم از این کد میتونید استفاده کنید :
System.Web.Hosting.HostingEnvironment.ApplicationH ost.GetSiteName();
ViewBag اگر توی View ست بشه توی layout هم قابل دستیابی هست . شما برعکس این رو میگین. تست کنین !
من با این کد حلش کردن فقط تمام لینک ها باید www.domainName.ir در اولشون باشه
@if (Request.IsLocal)
{
<script>
$('a').each(function () {
var $this = $(this);
var hrefTemp = $this.attr('href');
if (hrefTemp) {
hrefTemp = hrefTemp.toLowerCase().replace('https://www.domainName.com', '').replace('https://domainName.com', '');
$this.attr('href', hrefTemp);
}
});
</script>
}
این کد رو توی layout قرار دادم
نقل قول: دسترسی به یک viewBag در تمام ویوها