ここでMVC3とかみそりを使用して非常に奇妙な問題に遭遇しました。
私がまとめているアプリは、一連の面接の質問を示しています。質問に対するビューがあります(質問の内容はビューモデルからのものです)。したがって、1つの質問から投稿した後、同じ質問ビューを返す可能性があります(ただし、異なるviewmodelインスタンスを使用します)。
ビューモデルでは、次のような長いプロパティがあります。
public long QuestionID { get; set; }
ビューに値を格納するために非表示の入力フィールドを使用しようとしていました:
@Html.HiddenFor(m => m.QuestionID)
私の問題は、質問から質問へと進むときに、最終的に生成されたhtmlで非表示フィールドが変更されないことです。これ以降のすべての質問では、最初のquestionIDの値のままです。他のすべてのコンテンツは正常に変更されており、正常に機能している他の非表示フィールドがいくつかあります。モデルが生成されるコントローラーで正しい値を確認しました。かみそりファイルにブレークポイントを設定すると、モデルが正しいQuestionIDであるはずであることがわかります。@ Html.TextBoxForも使用してみましたが、同じ問題が発生します。以下のような非表示のフィールドを手動で作成すると、正常に機能します。これが本当に気になるところです。
<input type="hidden" id="QuestionID" name="QuestionID" value="@Model.QuestionID" />
なぜこれが起こっているのか考えていますか?