有没有一种简单的方法来查看FormCollection的内容?

时间:2012-07-27 19:40:26

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

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

  1. 所有预期的密钥都存在
  2. 所有预期的键都具有预期值
  3. 在Visual Studio中进行调试非常适合检查单个变量(甚至是简单对象)是否包含预期值,并且就FormCollection而言,检查密钥的存在非常容易。但是,检查FormCollection中的键/值对是一个巨大的麻烦。是否有一种简单的方法可以让Visual Studio并排列出键及其值以进行快速检查?

3 个答案:

答案 0 :(得分:3)

快速自定义检查

    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上以检查键值。单击放大镜将显示键值

enter image description here

答案 1 :(得分:1)

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

  

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

答案 2 :(得分:0)

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

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.