【问题标题】:How to retrieve model declared on Razor view using ControllerContext如何使用 ControllerContext 检索在 Razor 视图上声明的模型
【发布时间】:2013-10-09 14:04:26
【问题描述】:

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

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

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

【问题讨论】:

  • 你最好依赖模型type而不是模型名称。

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


【解决方案1】:

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

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

注意:你应该使用模型类型而不是字符串,所以使用:

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

而不是

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-26
    • 2016-07-18
    • 2020-10-15
    • 2011-12-30
    • 1970-01-01
    • 2011-09-11
    • 2018-05-23
    相关资源
    最近更新 更多