0

如果你去

http://nerddinner.codeplex.com/SourceControl/changeset/view/b1a032d1532b

获取 MVC4 版本。运行。举办晚宴。单击创建我总是收到此错误(屏幕截图)

这是我想用来帮助我学习的主要参考应用程序之一,所以如果有人知道我缺少什么,请告诉我

我不知道屏幕截图是否有效,但错误是:

LatLongStr 上这段代码中的 IndexOutOfRangeException

public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
    {
        var valueProviderResult = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
        if (valueProviderResult != null)
        {
            string[] latLongStr = valueProviderResult.AttemptedValue.Split(',');

            string point = string.Format("POINT ({0} {1})", latLongStr[1], latLongStr[0]);
            //4326 format puts LONGITUDE first then LATITUDE
            DbGeography result = DbGeography.FromText(point, 4326);
            return result;
        }
        return null;
    }

碎石

4

1 回答 1

1

这可能是因为您输入的值是没有,字符的 LatLongString

这个命令

string[] latLongStr = valueProviderResult.AttemptedValue.Split(',');

如果有 , 符号,则拆分给定的字符串以创建 lat long。

后面有两个值的引用

... latLongStr[1], latLongStr[0]);

但是,如果输入的值不包含 a ,则 latLongStr 只有 1 项,因此 latLongStr[1] 超出范围。

您可以通过确保输入有效的 LatLong 来防止这种情况。

于 2013-02-13T21:22:46.207 回答