我使用viewModels在我的控制器和我的视图之间进行通信。 要获取模型验证,我使用部分类这样的:使用viewModel进行模型验证不起作用
[MetadataType(typeof(EvaluationValidation))]
public partial class Evaluation
{
public class EvaluationValidation
{
[DisplayName("Title of evaluation")]
[Required(ErrorMessage="Please give a title")]
public string Title { get; set; }
}
}
显示名称被绑定到查看,没有问题,但是当我试图提交的观点,我得到这个错误:
传递到 字典型号产品类型 “FOOBAR.Models.Evaluation”, ,但本词典需要 型“FOOBAR.Areas.Evaluation.ViewModels.EvaluationFormViewModel”的典范 项目。
这是在我的控制器
[HttpPost]
public ActionResult Create(FormCollection formValues)
{
Models.Evaluation data = new Models.Evaluation();
if (TryUpdateModel(data, "evaluations"))
{
this.daoe.Create(data);
return RedirectToAction("Index");
}
return View(data);
}
使用的代码,这是我的ViewModel
public class EvaluationFormViewModel
{
public FOOBAR.Models.Evaluation evaluations;
public SelectList selectlist_evaluationtypes { get; set; }
public SelectList selectlist_evaluationstatus { get; set; }
}
有你有一个想法? 提前致谢
我是新来的ASP.NET MVC,但从我可以看到你传递的评估对象,而不是ViewModel到你不期待的视图(强类型视图?) – 2010-12-09 17:13:34