【问题标题】:Is there an easy way to view the contents of a FormCollection?有没有一种简单的方法来查看 FormCollection 的内容?
【发布时间】:2012-07-26 12:50:26
【问题描述】:

在测试/调试 ASP.NET MVC 应用程序时,通常会提交一个表单,然后检查所有名称/值对以确保

  1. 所有预期的键都存在
  2. 所有预期的键都有预期的值

Visual Studio 中的调试非常适合检查单个变量(甚至是简单对象)是否包含预期值,并且就 FormCollection 而言,检查键是否存在非常容易。但是,检查 FormCollection 中的键/值对是一件非常麻烦的事情。有没有一种简单的方法可以让 Visual Studio 并排列出键及其值以便快速检查?

【问题讨论】:

    标签: asp.net-mvc visual-studio-2010 debugging formcollection


    【解决方案1】:

    看看Glimpse,它在 nuGet 上。它公开了大量信息,对于 AJAX 和 MVC 开发来说非常宝贵。

    Glimpse 的核心是允许您直接在浏览器中调试您的网站或网络服务。 Glimpse 允许您“瞥见”您的 Web 服务器中正在发生的事情。换句话说,Firebug 用于调试客户端代码,Glimpse 用于在客户端中调试服务器。

    【讨论】:

      【解决方案2】:

      只是一个快速的自定义检查

          public void Edit(FormCollection team)
          {
              System.Text.StringBuilder st = new System.Text.StringBuilder();
      
              foreach (string key in team.Keys)
              {
                  st.AppendLine(String.Format("{0} - {1}", key, team.GetValue(key).AttemptedValue));
              }
      
              string formValues = st.ToString();
              //Response.Write(st.ToString());
          }
      

      然后您可以将鼠标放在formValues 上以检查键值。点击放大镜会显示键值对

      【讨论】:

        【解决方案3】:

        这是一种将集合以可读的键/值对格式输出到即时窗口的方法,每行输出一对:

        private void DebugWriteFormCollection(FormCollection collection)
        {
            foreach (string key in collection.Keys)
            {
                string value = collection.GetValue(key).AttemptedValue;
                string output = string.Format("{0}: {1}", key, value);
                System.Diagnostics.Debug.WriteLine(output);
            }
        }
        

        将其添加到您的代码中并设置断点。当您遇到断点时,从立即窗口调用该方法:

        DebugWriteFormCollection(collection);
        

        结果:

        Key1: Value1
        Key2: Value2
        Key3: Value3
        etc.
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-04-10
          • 2011-11-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-16
          • 1970-01-01
          • 2013-06-18
          相关资源
          最近更新 更多