【问题标题】:Displaying error messages from Controller in View在视图中显示来自控制器的错误消息
【发布时间】:2021-01-27 13:58:11
【问题描述】:

我看到很多人说出于安全原因,使用ViewdataViewBag 不是一个好的做法(显示来自控制器的消息)。好像大家都建议ModelState 我的问题是使用 viewdata 显示错误消息有什么问题?如果我们不应该使用ViewData,那么我们应该用它来做什么?

【问题讨论】:

标签: asp.net-core .net-core asp.net-core-mvc


【解决方案1】:

正如@shenku 之前回答的那样,ViewDataModelState 引用完全相同的东西,如果您查看 System.Web.Mvc.Controller 类的代码,您会看到 ModelState 的实现是:

   public ModelStateDictionary ModelState
    {
      get
      {
        return this.ViewData.ModelState;
      }
    }

和@JimmiTh 说, 尽管从“最终开发人员”的角度来看,ModelState 的主要用途是在控制器中,但 ViewData 用作在控制器和视图之间通信的所有数据的容器。这就是为什么它还需要包含 ModelState - 因为,虽然您很少直接在视图中使用它,但 ModelState 是例如许多 HtmlHelper 方法实际上在从 POST 操作(而不是模型)呈现视图时默认获取值。

【讨论】:

    猜你喜欢
    • 2017-09-19
    • 2015-08-18
    • 2015-05-03
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    相关资源
    最近更新 更多