ورود

View Full Version : استفاده از چند مدل در ویو



7asemoon
شنبه 02 مرداد 1395, 21:08 عصر
دوستان ممنون میشم اگر میتونید خیلی سریع راهنمایی کنید
من زمانی که میخام چندتا مدل رو در ویو پاس بدم با خطا مواجه میشم انواع و اقسام راه ها رو هم تست کردم جواب نگرفتم لطفا راهنمایی کنید
به این صورت پیاده کردم

@model University.ViewModel.EducationalBackground.Educati onalBackgroundListViewModel
@{
ViewBag.Title = "سوابق تحصیلی";
}

@{ Html.RenderPartial(MVC.Details.Views._EducationalB ackgroundAjax, Model);}

و در قسمت بعد


@model University.ViewModel.EducationalBackground.Educati onalBackgroundListViewModel
@foreach (var e in Model.EducationalBackgrounds)
{
@Html.Partial(MVC.Details.Views.ViewNames._Educati onalBackgroundItem, e)
}

و نهایتا


@using University.DomainClasses.Entities.ApplicantInfo
@using University.Utility
@model University.ViewModel.EducationalBackground.Educati onalBackgroundViewModel

<div class="rtl-content">
<div class="item">
<div class="item_inner">
<h2><i class="fa fa-caret-left"></i>&nbsp;نام و نام خانوادگی</h2>
<div class="desc">@Model.Field</div>
</div>
<div class="clearfix"></div>
</div>
</div>

ولی زمانی که اجرا میگیرم با این خطا مواجه میشم


The model item passed into the dictionary is of type 'University.ViewModel.EducationalBackground.Educat ionalBackgroundViewModel', but this dictionary requires a model item of type 'University.ViewModel.EducationalBackground.Educat ionalBackgroundListViewModel'.

Moien Tajik
شنبه 02 مرداد 1395, 22:41 عصر
کد قسمت Controller و اون Partial View استفاده شده رو بفرستید .

7asemoon
یک شنبه 03 مرداد 1395, 00:48 صبح
کد قسمت Controller و اون Partial View استفاده شده رو بفرستید .

کدها به ترتیب هست. قسمت دوم مربوط به RenderPartial اول و کد سوم مربوط هست به Partial دوم

bomb23
یک شنبه 03 مرداد 1395, 06:43 صبح
سلام شما نمیتونید چند تا مدل به یک ویو پاس بدید!

دو راه دارید:
1) دیتاهای مورد تظرتون رو داخل ویو فراخوانی کنید.
2) یک مدل جدید که داخلش اون مدل هایی که مخواید ارسال کنید باشند و نهایتا مدل جدید رو به ویو پاس میدید.

7asemoon
یک شنبه 03 مرداد 1395, 08:46 صبح
سلام شما نمیتونید چند تا مدل به یک ویو پاس بدید!

دو راه دارید:
1) دیتاهای مورد تظرتون رو داخل ویو فراخوانی کنید.
2) یک مدل جدید که داخلش اون مدل هایی که مخواید ارسال کنید باشند و نهایتا مدل جدید رو به ویو پاس میدید.

روش دوم رو تست کردم ولی جواب نداد و دو مرتبه همین پیغام خطا رو میده
روش اول رو متوجه منطورتون نشدم

bomb23
یک شنبه 03 مرداد 1395, 09:23 صبح
روش اول اصلا دیگه نیازی به پاس دادن مدل نداره ! action رو خالی بفرستید یعنی return View();
خطایی که براتون نشون میده یعنی مدلی که در action مربوطه به ویو پاس دادید با چیزی که بالای ویو نوشتید متفاوته!
این لینکو برای ویو مدل بخونید:

http://www.dotnettips.info/post/1243/%D9%86%D8%AD%D9%88%D9%87-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-viewmodel-%D8%AF%D8%B1-asp-net-mvc