0

あなたが行くなら

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

MVC4 バージョンを取得します。それを実行します。ディナーを開催します。[作成] をクリックすると、常にこのエラーが発生します (スクリーンショット)

これは、私が学習を支援するために使用したい主要なリファレンス アプリの 1 つです。

スクリーンショットが機能したかどうかはわかりませんが、エラーは次のとおりです。

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(',');

記号がある場合、指定された文字列を分割して緯度経度を作成します。

後で、2 つの値への参照があります。

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

ただし、入力された値に が含まれていない場合、latLongStr には 1 つの項目しかないため、latLongStr[1] は範囲外です。

有効な LatLong が入力されていることを確認することで、これを防ぐことができます。

于 2013-02-13T21:22:46.207 に答える