私のコントローラーでは、以下に示すようにモデルオブジェクトをビューバッグに入れました:
ViewBag.fileModel = new ViewFileModel(id)
public class ViewFileModel
{
public Employee Employee { get; set; }
public SelectList TrainingSelectList { get; set; }
public SelectList FileTypeSelectList { get; set; }
public int trainingId{ get; set; }
public int fileType { get; set; }
public ViewFileModel(int employeeId)
{
using (var unit = new UnitOfWork())
{
Employee = unit.EmployeeRepository.FindBy(e => e.Id == employeeId).SingleOrDefault();
if (Employee == null)
{
Debug.Print("Employee bulunamadi {0},", employeeId);
throw new ArgumentException("Hatali personel parametresi " + employeeId);
}
else
{
TrainingSelectList = new SelectList
(Employee.TrainingList, "Id", "TrainName");
FileTypeSelectList = SelectListUtils.FileTypeSelectList(1);
}
}
}
私のビューでは、部分ビューをレンダリングし、ビューにオブジェクトを渡そうとします。渡されたオブジェクトは、部分ビューの新しいモデルになります。
<div id="employee_files">
@{ Html.RenderPartial("_DetailsFiles", new { ViewBag.fileModel });
}
私の部分的な見解では、私はこれを持っています:@model G222.IK.Models.ViewModel.ViewFileModel
次の例外が発生しています。ViewBag が Object を返し、ビューが ViewFileModel を期待しているのは問題だと思います。レンダラー ビューでモデルにキャストしようとしましたが、うまくいきませんでした。これに対する修正はありますか?
The model item passed into the dictionary is of type '<>f__AnonymousType0`1[System.Object]', but this dictionary requires a model item of type 'G222.IK.Models.ViewModel.ViewFileModel'.