ورود

View Full Version : ارسال دیتا به Layout



arashnaderi
یک شنبه 27 دی 1394, 23:07 عصر
سلام دوستان
چطوری میشه یه سری اطلاعات کوچیک رو به layout اصلی(مسترپیج) فرستاد؟ من منظورم مثلا پنل اخبار یا ... نیستش. چون معمولا اونارو با renderAction یا partial میزنیم
منظورم مثلا نام کسی که لاگین کرده رو نشون بده یا لوگوی سایت داینامیک باشه یا حتی یه نوشته ساده داینامیک. توی layout بطور مثال از این بخش های کوچیک زیاد داریم.
همه اینارو معمولا با RenderAction یا partial میزنن؟ نسبت به وب فرم ارسال دیتا به Layout از مسترپیج سخت تر شده به نظرم.

arashnaderi
دوشنبه 28 دی 1394, 12:27 عصر
جواب ندادین خودم یه راه حلی پیدا کردم گفتم اینجا بزارم شاید به درد دوستان بخوره شایدم روشم درست نباشه و استاتید محترم اصلاحش کنن


public class MainLayoutVM
{
public string LogoAddress { get; set; }
}

public class BaseController : Controller
{
public MainLayoutVM model { get; set; }

public BaseController()
{
model = new MainLayoutVM();
model.LogoAddress = "http://www.test.com/1.jpg";
ViewBag.MainLayoutVM = model;
}
}


ابتدا یک مدل تعریف کردم با خصوصیات مورد نظرم. بعد یک کلاس دیگه نوشتم که از controller ارث بری کنه و خصوصیات مدل را مقداردهی کنه

حالا توی کنترل home بجای ارث بری از Controller، باید از BaseController ارث بری کنه



public class HomeController : BaseController {}


حالا توی Layout اینطوری مقدارو خوندم



<img class="img-responsive" src="@(((MainLayoutVM)ViewBag.MainLayoutVM).LogoAddress )" alt="لوگو" />

arashnaderi
دوشنبه 28 دی 1394, 12:36 عصر
دوستان لطفا پیشنهاد خودتونو در مورد این روش بفرمایید
ممنون