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

时间:2015-05-30 02:34:48

标签: asp.net-mvc razor visual-studio-2013

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

  

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

当我查看堆栈跟踪时,我发现了对String.Format(string, args)的调用。

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

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

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

enter image description here

1 个答案:

答案 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的索引。

参考