ビューには、モデルのDateTimeフィールドに関連付けられたDisplayForがあります。フィールドを更新するために、AJAX呼び出しは日付を返します。 AJAXの日付をMM/DD/YYYYの値に変換できますが、DisplayForを.valで設定してもビューは更新されません。 Chromeデベロッパーツールにエラーは表示されず、実際には変換された正しいDateTimeが表示されますが、DisplayForは更新されません。私は.valの代わりに.attrを変更しようとしていませんでした。なぜなら.valは正しいオプションになるからです。ビューが更新されない理由を誰でも見ることができますか?前もって感謝します!AJAXの結果を表示するDisplayForを更新する
モデル宣言:
DateTime? SaleDate { get; set; }
ビューでDisplayFor:成功AJAX呼び出しの内部
@Html.LabelFor(m => m.SaleDate, "Sale Date")
@Html.DisplayFor(m => m.SaleDate, "{0:d}", new { @class = "form-control" })
更新スクリプト:
success: function (data) {
var $sDate = $("#SaleDate");
var pattern = /Date\(([^)]+)\)/;
var results = pattern.exec(data[0].SaleDate);
var dt = new Date(parseFloat(results[1]));
$sDate.val(dt); //dt is correct Date, but DisplayFor isn't updating!
}
EDIT
ページソースは、IDが正しいことを示していますが、入力はありません。私はこれがDisplayFor対TextBoxForのためであると仮定しますが、idの明らかな欠如が問題である可能性がありますか?
<label for="SaleDate">Sale Date</label>
6/1/2016 12:00:00 AM//no input section, just the DateTime value
あるいは、SaleDateがnullの場合:
<label for="SaleDate">Sale Date</label>
//no value or input section
このルビーはレールですか? – marcusshep
いいえ、ビュー側のブートストラップでモデルとコントローラ側のC#です。 – jle
生成されたHTMLコードをブラウザで確認して、 'DisplayFor'入力に' SaleDate'というIDがあることを確認してください。 –