View Full Version : سوال: View Model
ali-miladian
جمعه 21 فروردین 1394, 08:56 صبح
سلام دوستای خوبم . یه سوال در مورد view model داشتم این کلاس اصلی من است :
public class Sample
{
public int Id { get; set; }
public string Name { get; set; }
public Student student { get; set; }
public Employee employee { get; set; }
public Person person { get; set; }
public List<Category> Category { get; set; }
}
در این کلاس 3 property از نوع کلاس های Student, Employee, Person داریم و یک لیست از نوع کلاس Category . خوب در صورتی که من قصد استفاده از viewmodel را داشته باشم چگونه باید عمل کنم
1- در یک مدل قصد نمایش Id, Name, Student, Employee را دارم
2-در یک مدل قصد نمایش Id,Name,Person,List<Category> را دارم
و ...
حالا برای هر کدام از این ها باید یک کلاس تعریف کنم مثلا برای شماره 1 یک کلاس با 4 property و ....
دسستون درد نکنه .. راهنمایی کنید
parvizwpf
جمعه 21 فروردین 1394, 11:35 صبح
فکر نکنم تو ویو مدل navigatiopn property یا همین لیست ها و ارتباط ها تعریف بشه شما هر چی میخواهید ببیرید روی صفحه همونو ویو مدل کنید
behnam-soft
جمعه 21 فروردین 1394, 12:52 عصر
سلام، جواب سوال شما در خود سوال شماست، همین کلاس اصلی که داری رو تبدیل به ویو مدل کن، خب حالا در ویویی که می خوای از اون استفاده کنی، این کار رو انچام بده:
مثلا برای نام کارمند بنویس : @Html.LabelFor(p => Model.Employee.Name) و سایر مشخصات کارمند
برای دانش آموز هم دقیقا مثل کارمند : @Html.LabelFor(p => Model.Student.Name)
موفق باشید
ali-miladian
جمعه 21 فروردین 1394, 13:12 عصر
behnam-soft (http://barnamenevis.org/member.php?107151-behnam-soft)
:
متشکرم . حالا اگر بخواهم کلاس اصلی را مدل کنم بعضی از property هم خالی می مونه یعنی مورد نیاز من نیست ....
سوال من همینجاست ؟
اینکه مثلا تو این کلاس دو تا از فیلد ها خالی بمونه ، این مشکلی ایجاد نمی کنه ؟
r4hgozar
جمعه 21 فروردین 1394, 18:10 عصر
سلام.
خالی بودنش مشکلی رو نداره.
اما بهتره واس هر کدوم از viewmodel ها جداگانه بسازی.
کاربر مقادیری رو که نیاز داره ببینه و پر کنه.
نیاز نیست هر چی رو ببینه. یا اصلا به صفه بره و نشون داده نشه. یا یه کلاس حجیم ارسال بشه.
ali-miladian
شنبه 22 فروردین 1394, 00:11 صبح
ممنون ./ r4hgozar (http://barnamenevis.org/member.php?228111-r4hgozar)/
پس نظر شما اینه که اگر یک سری از خصوصات کلاس در زمان مقدار دهی خالی باشند مشکلی ایجاد نمی کنه ....
اگر قرار باشه واسه هر کدوم یک viewmodel بزنیم آمار بالا میره اسماشون را چطوری انتخاب کنیم : مثلا طبق همین مثال : یکی SampleShowViewModel مابقی چطور نام انتخاب کنم ؟ (نمایش)
mh.milan
شنبه 22 فروردین 1394, 10:06 صبح
شما وقتی می خوایی یک کلاس تعریف کنی باید سعی کنی که این کلاس رو جوری تعریف کنی که در آینده نیاز به ایجاد تغییرات در آن کم باشه. پس اگر دو دسته بندی داری برای اطلاعاتی که در ویو ها استفاده می کنی بهتره که دو تا کلاس داشته باشی. حالا اینکه این کلاسا رو چجوری تعریف کنی با یک مثال توضیح می دم.
فرض کن ویوی شماره 1 قراره Name و Student.LastName و Employee.RegistrationDate رو نشون بده . باید یک ویو مدل با فیلد های زیر داشته باشی :
public class ClassViewModel {
public string Name { get; set; }
public string StudentName { get; set; }
public string EmployeeRegistrationDate { get; set; }
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.