在测试/调试 ASP.NET MVC 应用程序时,通常会提交一个表单,然后检查所有名称/值对以确保
- 所有预期的键都存在
- 所有预期的键都有预期的值
在 Visual Studio 中进行调试非常适合检查单个变量(甚至是简单对象)是否包含预期值,并且就 FormCollection 而言,检查键的存在非常容易。但是,检查 FormCollection 中的键/值对是一件非常麻烦的事情。有没有一种简单的方法让 Visual Studio 并排列出键及其值以便快速检查?
在测试/调试 ASP.NET MVC 应用程序时,通常会提交一个表单,然后检查所有名称/值对以确保
在 Visual Studio 中进行调试非常适合检查单个变量(甚至是简单对象)是否包含预期值,并且就 FormCollection 而言,检查键的存在非常容易。但是,检查 FormCollection 中的键/值对是一件非常麻烦的事情。有没有一种简单的方法让 Visual Studio 并排列出键及其值以便快速检查?
只是一个快速的自定义检查
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
以检查键值。单击放大镜将显示键值
看看Glimpse,它在 nuGet 上。它公开了大量信息,对于 AJAX 和 MVC 开发来说非常宝贵。
Glimpse 的核心允许您直接在浏览器中调试您的网站或 Web 服务。Glimpse 允许您“瞥见”您的 Web 服务器中正在发生的事情。换句话说,Firebug 用于调试客户端代码,Glimpse 用于在客户端中调试服务器。
这是一种以可读的键/值对格式将集合输出到即时窗口的方法,每行输出一对:
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.