ゼロになるので、私はこのようなコントローラー持って、私はフォームを投稿するとASP.NET MVCのポストリストは非常に奇妙な状況下で
<h2>Test</h2>
@using (Html.BeginForm("Post", "Test"))
{
@Html.Hidden("LanguageStrings[0].Val", "test1")
@Html.Hidden("LanguageStrings[0].Another")
@Html.Hidden("LanguageStrings[1].Val", "test2")
@Html.Hidden("LanguageStrings[1].Another")
@Html.Hidden("LanguageStringsGroup[0].Val", "test4")
@Html.Hidden("Deleted[0]")
@Html.Hidden("Deleted[1]")
@Html.Hidden("Deleted[2]")
@Html.Hidden("DeletedGroup[0]")
<button>Post</button>
}
を私のコントローラLanguageStringsがnullのため例外がスローされます。私がタイトルで言及した奇妙な部分は、リストにもう1つのレコードを追加するとすべてが機能するということです。このよう :私は「削除」のリストを削除するとき
<h2>Test</h2>
@using (Html.BeginForm("Post", "Test"))
{
@Html.Hidden("LanguageStrings[0].Val", "test1")
@Html.Hidden("LanguageStrings[0].Another")
@Html.Hidden("LanguageStrings[1].Val", "test2")
@Html.Hidden("LanguageStrings[1].Another")
@Html.Hidden("LanguageStrings[2].Val", "test3")
@Html.Hidden("LanguageStrings[2].Another")
@Html.Hidden("LanguageStringsGroup[0].Val", "test4")
@Html.Hidden("Deleted[0]")
@Html.Hidden("Deleted[1]")
@Html.Hidden("Deleted[2]")
@Html.Hidden("DeletedGroup[0]")
<button>Post</button>
}
また、動作します。このよう :
<h2>Test</h2>
@using (Html.BeginForm("Post", "Test"))
{
@Html.Hidden("LanguageStrings[0].Val", "test1")
@Html.Hidden("LanguageStrings[0].Another")
@Html.Hidden("LanguageStrings[1].Val", "test2")
@Html.Hidden("LanguageStrings[1].Another")
@Html.Hidden("LanguageStringsGroup[0].Val", "test4")
@Html.Hidden("DeletedGroup[0]")
<button>Post</button>
}
これは私が使用している命名とは何かを持っています。私はすでに何かにLanguageStringの名前を変更することでこの問題を解決しました。しかし、ここで何が起こっているのか理解したいのは、おそらくMVCがどのように身体を要求しているのかを学ぶことができ、同様の時間がかかる問題を避けることができるからです。 私を助けて、その原因を説明してください。
このコードはどこですか? – raklos
MVC5はそのコードを持っているので、MVC5にアップグレードするだけです。 PrefixContainerの最新ソースコードはhttps://aspnetwebstack.codeplex.com/SourceControl/latest#src/Common/PrefixContainer.csです。 – LostInComputer