如何使用ControllerContext检索在Razor视图上声明的模型

时间:2013-10-09 14:04:26

标签: asp.net-mvc c#-4.0 asp.net-mvc-4

我正在编写自定义DataAnnotationsModelValidatorProvider并重写方法

 GetValidators(ModelMetadata metadata, 
               ControllerContext context, 
               IEnumerable<Attribute>  attributes)

如何确定此上下文正在访问的Razor视图中声明的模型类型的名称是什么?

1 个答案:

答案 0 :(得分:0)

要从ControllerContext获取模型,请使用:

var model = context.Controller.ViewData.Model;
var modelName = model.ToString();

注意:您应该使用模型类型而不是字符串,因此请使用:

if (model is MyViewModel) { //... }

而不是

if (modelName == "MyViewModel") { //... }