PDA

View Full Version : سوال: پاس دادن مدل در layout صفحه



سعید کشاورز
چهارشنبه 27 بهمن 1395, 09:03 صبح
سلام..
من دارم یه سی ام اس طراحی میکنم
من داخل هدر و فوتر سایتم یه سری مدل دارم.
در هدر سایت منو دارم که در تمام صفحات نمایش داده میشه
در فوتر سایت هم یه سری لینک و لیست آخرین خبرها رو دارم.
حالا برای نمایش اینها از دستور @html.Action استفاده میکنم که فکر میکنم اصلا این قضیه بهینه نباشه(ولی خوب داره جواب میده)
حالا سوالم اینه اگر بخوام یه ViewModel که شامل چندین مدل میشه به صفحه laytout پاس بدم چجوریه؟ یعنی یه جورایی فکر کنم باید یه اکشن بنویسم که در تمام صفحات سایت اجرا میشه.درسته؟

Moien Tajik
چهارشنبه 27 بهمن 1395, 20:02 عصر
http://stackoverflow.com/a/12946362
http://stackoverflow.com/a/14882183
http://stackoverflow.com/a/13231752

hmahdavi921
جمعه 29 بهمن 1395, 15:57 عصر
کافیه یک کلاس ایجاد کنید و تمام مدلهاتون رو به عنوان یک فیلد این کلاس تعریف کنید و در نهایت این کلاس رو به ویو پاس بدید.در داخل ویو به تمام فیلدهای کلاس که هر کدوم مدل بخشی از صفحه هستند میتونید دسترسی داشته باشید

public ViewModelMain{
public ViewModelclassHeader {get; set;}
public ViewModelclassMenu {get; set;}
public ViewModelclassFooter {get; set;}
}

و در داخل ویو هم به این صورت :
@model ViewModelMain

alireza_s_84
شنبه 30 بهمن 1395, 05:27 صبح
سلام..
من دارم یه سی ام اس طراحی میکنم
من داخل هدر و فوتر سایتم یه سری مدل دارم.
در هدر سایت منو دارم که در تمام صفحات نمایش داده میشه
در فوتر سایت هم یه سری لینک و لیست آخرین خبرها رو دارم.
حالا برای نمایش اینها از دستور @html.Action استفاده میکنم که فکر میکنم اصلا این قضیه بهینه نباشه(ولی خوب داره جواب میده)
حالا سوالم اینه اگر بخوام یه ViewModel که شامل چندین مدل میشه به صفحه laytout پاس بدم چجوریه؟ یعنی یه جورایی فکر کنم باید یه اکشن بنویسم که در تمام صفحات سایت اجرا میشه.درسته؟
کار شما کاملا درسته و Child Action ها دقیقا برای همین منظور طراحی شدن. برای جبران هزینه اجرای اکشن در هر درخواست هم میتونید داده های اون رو کش کنید چون ممعمولا این داده ها دیر به دیر آپدیت میشن.