با سلام
بنده زمانی که مدل رو پر می کنم به حلقه که میرسه با ارور زیر مواجه میشم
The model item passed into the ViewDataDictionary is of type 'Services.Model.RelationViewModels'
public class RelationModels
{
public ChangeEmailModel ChangeEmail { get; set; }
public SetNewPasswordModel SetNewPasswordModel { get; set; }
public User_Resumes UserResumes { get; set; }
public IEnumerable<ResumerCardViewModel> CardViewModels { get; set; }
public IEnumerable<CountriesViewModel> CountriesViewModels { get; set; }
public IEnumerable<ProvincesViewModel> ProvincesViewModels { get; set; }
public IEnumerable<CitiesViewModel> CitiesViewModels { get; set; }
}
public async Task<IActionResult> Dashboard(RelationModels model)
{
model.CardViewModels = _resumerMethod.GetCard();
return View(model);
}
اکشن dashboard هم به همین شکل هستش مدل رو پر میکنه و به سمت razor میفرسته و نمایش میده اما تو اکشن پایین با ارور مواجه میشم.
public async Task<IActionResult> Resume(Guid id, string TempName, RelationModels model)
{
var ResumeTitle = await _resumerMethod.GetUserResumeAsync(id, TempName, CancellationToken.None);
if (ResumeTitle.Count == 0) return Redirect("/");
model.CountriesViewModels = _resumerMethod.GetCountries();
return View(model);
}
تو هر دوتا view هم از
@model RelationModels
استفاده کردم.
ممنون میشم راهنمایی کنید
خطایی که شما دارید به صورت کامل این هست
The model item passed into the dictionary is of type .. but this dictionary requires a model item of type
کدهایی که شما قرار دادید کامل نیست. در واقع شما در کلاس RelationModels از چندین کلاس و مدل و ViewModel دیگه استفاده کردید. از طرفی در اکشن متد Dashboard میخواید این مدل رو که خودش شامل چندین و چند مدل و ویومدل دیگه هست رو مقدار دهی کنید.
خب در اکشن Dashboard شما مدل ورودی یا همون پارامتر رو RelationModels که خودش شامل چندین کلاس و مدل هست تعریف کردید. اما در بدنه اکشن گفتید model.CardViewModel یعنی فقط به یکی از مدلهای درونی این کلاس که از نوع IEnumerable هم هست خواستید مقدار بدید.
خب چند تا حالت این جا پیش میاد :
اول اینکه بنظرم ایجاد یک مدل مثل RelationModels که شامل این همه کلاس و ویو و مدل باشه صحیح نیست. شاید به نظر میاد که جمع و جورتر کدنویسی کردید، اما مدیریت خطا خیلی سختتر میشه اینجوری.
دوم اینکه در RelationModels پراپرتی CardViewModel از نوع لیستی هست (IEnumerable). خب آیا مطمئن هستید که متد GetCard هم یک لیست رو داره برمی گردونه ؟
پیشنهاد :
برای اینکه کارتون ساده تر بشه و همچنین وقتی میخواید سوال بپرسید بتونید راحتتر سوال رو بپرسید و کسی که میخواد پاسخ بده هم راحتتر باشه بنظرم مدلهایی مثل RelationModels رو ایجاد نکنید چون این مدل شامل چندین کلاس و ... هست و بررسی رو سخت میکنه.
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
79
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
113
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
217
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
117
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
397
- پاسخ :
2
|
تاریخ :
1403/06/25
- ساعت :
11:39:00 PM
- بازدید :
568
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2013
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
79
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
113
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
931
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1161
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
599
- پاسخ :
1
|