PDA

View Full Version : حرفه ای: دسترسی به یک viewBag در تمام ویوها



hmahdavi921
سه شنبه 30 خرداد 1396, 15:26 عصر
با سلام
یک مسئله ای که تمام وب سایت های در حال توسعه با هاش درگیر هستند اینه که شما باید لینک های سایتتون رو جوری مقدار دهی کننین که هم در تست لوکل مشکلی پیش نیاد و هم در سرور لینکها در اولشون آدرس سایت رو داشته باشن تا موتورهای حستجو اونها رو به عنوان لینک شکسته نبینن! مثلا blog/detail/1/ از نظر گوگل لینک شکستست. اما www.domainName.ir/blog/detail/1 یک لینک درسته. حالا اگر این لینک در لوکال باشه شما نمیتونید اون صفخات رو در لوکل ببینید. حالا واسه حل این مشکل لازمه تا دامین فعلی چه لوکل چه دامین ، رو در تمام ویو ها بهش دسترسی داشته باشیم.شاید با ViewBag بشه این کار رو انجام داد.

if (!Request.IsLocal) {
ViewBag.preHref = "www.domain.ir/";
}
اگر دوستان راه حلی دارید لطفا راهنمایی کنید.
با تشکر

Moien Tajik
سه شنبه 30 خرداد 1396, 19:28 عصر
اگر فقط مشکلتون دسترسی به ViewBag در تمام صفحه ها هست ، ViewBag رو داخل Layout ست کنید .
برای گرفتن نام دامین سایت بطور Dynamic هم از این کد میتونید استفاده کنید :

System.Web.Hosting.HostingEnvironment.ApplicationH ost.GetSiteName();

hmahdavi921
چهارشنبه 31 خرداد 1396, 09:43 صبح
اگر فقط مشکلتون دسترسی به ViewBag در تمام صفحه ها هست ، ViewBag رو داخل Layout ست کنید .
برای گرفتن نام دامین سایت بطور Dynamic هم از این کد میتونید استفاده کنید :

System.Web.Hosting.HostingEnvironment.ApplicationH ost.GetSiteName();



ViewBag اگر توی View ست بشه توی layout هم قابل دستیابی هست . شما برعکس این رو میگین. تست کنین !
من با این کد حلش کردن فقط تمام لینک ها باید www.domainName.ir (http://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 قرار دادم

Moien Tajik
چهارشنبه 31 خرداد 1396, 23:30 عصر
https://stackoverflow.com/a/21130867/6661314
https://stackoverflow.com/a/27308688/6661314