"Date"という名前のHTTP GETパラメータがあり、その名前が "Date"であるテキストボックスを作成して、それに必要な値を設定することができないという状況があります。私の見解では私のHTMLエディタは私が設定した値を無視しており、常にリクエストデータから値を取得しています。どうして?
は、私が書く場合:
@Html.TextBox("Date", "99/99/9999")
のTextBoxはない値99/99/9999
でなく、リクエストから来ている値でレンダリングされます、のは言わせて:02/07/2012
。私は
私がどんな要求データを上書きしないカント(私は積極的に02/07/2012
異なる値に設定されていること)ビューモデルから値を渡すEditorFor
を使用した場合も同じことが起こります。
どうすればよいですか?ダーリンディミトロフとして
EDIT
賢明なあなたがビューに表示するために、要求から値を変更したい時はいつでも、あなたはModelState
からそれを削除する必要があり、説明しました。
これは、GETリクエストでDateTimeを処理する場合に特に便利です。 ASP.NET MVCモデルバインドでは、日付はGET要求でMM/dd/yyyy
の形式になります。しかし、それをユーザーに表示したい場合は、おそらくDisplayFormatAttribute
を使用してdd/MM/yyyy
に再フォーマットすることができます。ただし、ModelStateから最初に日付を削除しない限り、これは不可能です。
申し訳ありませんが、私は実際にはGET値であることを述べた質問を編集しました。これによりあなたの反応が変わることがあります。私はあなたのことを理解しており、今それをチェックしています。 –
@AndréPena、いいえ、GETリクエストにも同じことが適用されます。'Date'というクエリ文字列パラメータがあり、GETコントローラアクションがDateというプロパティを持つビューモデルをパラメータとして取る場合、この値はModelStateに格納されます。したがって、あなたのアクションでそれを変更する必要がある場合は、私の答えに示されているようにModelStateからそれを削除する必要があります。ヘルパーが渡す値を考慮していないと言っている場合は、最初に削除する必要があるモデル状態の値が異なることを意味します。 –
よろしくお願いします。私はあなたの解決策をチェックしており、私は数分であなたに戻ってきます。 –