1

ここで何かが足りないと思います。ASP.NET MVC 4 アプリケーションがあります。私の見解では、モデルに関連付けられているドロップダウン リストがあります。簡単なもの。

@Html.DropDownListFor(x => x.GaragingAddress.State, 
                      POSBridge.Helpers.StateAbbreviations(), 
                      new {id="ADStreetState"})

私が参照するヘルパー関数はこちらです (最も効率的ではありませんが、現在はパフォーマンスではなく関数の証明に集中しています)。

namespace POSBridge
{
    public class Helpers
    {
        public static List<SelectListItem> StateAbbreviations(bool includeTerritories = false)
        {
            List<string> abbreviations = new List<string>
            {
                "",
                "AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD",
                "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD",
                "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY"
            };
            if (includeTerritories)
            {
                abbreviations.AddRange(new string[] { "AS", "GU", "MP", "PR", "VI", "UM" });
            }

            List<SelectListItem> items = new List<SelectListItem>();
            foreach (string s in abbreviations) items.Add(new SelectListItem { Text = s, Value = s });
            return items;
        }
    }
}

ページがレンダリングされるとき、状態を含む選択リストは取り込まれません。すべての状態値がドロップダウン リストに表示されます。ページの他のドロップダウン リストはエラーなしで読み込まれます。ここにブレークポイントを配置して、すぐに表示されるウィンドウでモデルの値を確認すると、Model.GaragingAddress.State プロパティには確かに値が含まれています。したがって、おそらく私が書いたヘルパー関数と関係があると確信していますが、何が/どのように機能するかはわかりません。

ティア

4

1 に答える 1

0

わかりました、これは奇妙で予想外でしたが、次のコードは機能しました。

@Html.DropDownListFor(x => x.GaragingAddress, 
    new SelectList(POSBridge.Helpers.StateAbbreviations(), 
                   "Value",
                   "Text", 
                   Model.GaragingAddress.State), 
    new { id="ADStreetState" })

なぜこれが機能し、もう一方が機能しないのかわかりませんが、何かが機能している場合に文句を言うのは誰ですか?

于 2012-12-29T01:12:39.303 に答える