如何在Razor Helper中访问ModelState

时间:2016-08-09 19:22:01

标签: asp.net-mvc razor asp.net-mvc-5

我使用

创建了一个剃刀助手
@helper MyHelper(string param) {
}

语法。我需要能够访问模型状态以确定是否应该向元素添加错误类。我该如何访问? Intellisense确实显示了ModelState,但它始终为null。

在剃刀页面中,我会使用ViewData.ModelState,但ViewData不存在于上下文中。

1 个答案:

答案 0 :(得分:2)

调用此帮助程序方法时,需要从视图中显式传递视图上下文。

@helper MyHelper(string param,ViewContext context) {
  <div>
    @foreach (var modelStateVal in context.ViewData.ModelState.Values)
    {
        foreach (var error in modelStateVal.Errors)
        {
           <p>@error.ErrorMessage</p>
        }
    }
  </div>
}

并在视图中要调用它,

@MyHelperClass.MyHelper("Hello",this.ViewContext)

另一种选择是创建一个Html Hepler方法