【问题标题】:a good way of passing multiple values from View to Controller将多个值从 View 传递到 Controller 的好方法
【发布时间】:2013-07-17 19:50:38
【问题描述】:

这是每天都在发生的事情

我正在寻找一种更好的方法来将视图中的值获取到动作中,因为控制器根据 http 请求创建和销毁,有没有一种好方法可以通过所有参数?(我的意思是更多超过 5 个参数)

我想到了会话,但有可能会失去他们的会话并且重要的价值消失了,除了会话,还有其他方法吗?

【问题讨论】:

  • 那些参数是什么?是不是View需要的参数,需要通过Action在View之间传递?
  • 就我而言,是的,假设我有一个列表,当人们输入关键字时,我应该给他们一个过滤后的新列表,但如果他们点击页码,所有关键字,以及清单不见了,他们看到的只是那个原始的
  • @LifeScript 页码链接可以包含查询字符串中的关键字。
  • 如果我理解正确,您希望在不同操作之间维护查询字符串。如果是这样,请看我对这个问题的回答:stackoverflow.com/questions/17466682/…

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4


【解决方案1】:

我会首先考虑您的应用程序是否需要在视图之间保存这么多信息。 MVC 是基于 REST 的架构,通常设计为无状态。

话虽如此,您与用户传递状态的选项归结为会话、Cookie 和数据库。

我将创建一个静态类来存储和检索会话中的数据。

public static class CustomPersistStore
{
   public static CustomClass Current{
      get{
         var instance = HttpContext.Current.Session["key"] as CustomClass;
         if(instance = null) {
            instance = new CustomClass();
         }
         return instance;
      }
   }    
}

【讨论】:

    【解决方案2】:

    如果您想将值从视图传递到操作,最佳做法是使用强类型视图。

    http://howmvcworks.net/OnViews/BuildingAStronglyTypedView

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-15
      • 2016-08-28
      • 2020-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多