MVC查看不存在的代码的抛出错误

Han*_*han 2 asp.net-mvc razor visual-studio-2013

我有一个剃刀局部视图,这是投掷和错误,说:

索引(从零开始)必须大于或等于零且小于参数列表的大小.

当我查看堆栈跟踪时,我找到了一个电话String.Format(string, args).

问题是在这行代码中没有这样的调用String.Format().此外,调试器会突出显示没有此类调用的代码段String.Format().

我试过删除临时的互联网文件.我尝试过清洁和重建.我正在使用Visual Studio Web Developer Express 2013 Update 4.

这是错误抛出时调试器的照片(注意绿色突出显示,以及断点处的红色突出显示 - 似乎是选择了其他不存在的东西):

在此输入图像描述

小智 7

这是抛出异常的以下行(总共4行)

@string.Format("1_{1}", i)
Run Code Online (Sandbox Code Playgroud)

应该

@string.Format("1_{0}", i)
Run Code Online (Sandbox Code Playgroud)

您只提供一个参数string.Format(),它对应于内部参数数组的索引0.请考虑以下代码:

    public static string Format(string format, params object[] args);
Run Code Online (Sandbox Code Playgroud)

这是string.Format()的BCL签名,请注意'args'参数如何声明为数组.的params关键字仅允许语法糖其中隐藏从消费者码阵列.的format itemsformat string表示基于0的索引到该阵列.

参考