我有一个剃刀局部视图,这是投掷和错误,说:
索引(从零开始)必须大于或等于零且小于 参数列表的大小。
当我查看堆栈跟踪时,我发现了对String.Format(string, args)
的调用。
问题在于这行代码中没有对String.Format()
的此类调用。此外,调试器会突出显示一段代码,其中没有对String.Format()
的调用。
我尝试删除临时互联网文件。我尝试过清洁和重建。我正在使用Visual Studio Web Developer Express 2013 Update 4。
下面是错误抛出时调试器的照片(注意绿色突出显示,以及断点处的红色突出显示 - 似乎正在选择其他不存在的东西):
答案 0 :(得分:7)
以下几行抛出异常(总共4个)
@string.Format("1_{1}", i)
应该是
@string.Format("1_{0}", i)
您只向string.Format()
提供一个参数,该参数对应于内部参数数组的索引0。请考虑以下代码:
public static string Format(string format, params object[] args);
这是string.Format()的BCL签名,请注意'args'参数如何声明为数组。 params
关键字只允许从消费者代码中隐藏数组的语法糖。 format string
中的format items
表示该数组的基于0的索引。
参考