私はかなり奇妙な問題を抱えています。アイテム編集ページの最後で作業していたところ、ASP が古い値を C#.cs
コードに渡すという奇妙なバグが発生しました。
私の中でPage_Load
private int SomeID = 0;
if (!IsPostBack) {
...
SomeID = Convert.ToInt32(Page.RouteData.Values["id"])
LoadFunction();
}
ローディング機能:
DataBaseDataContext db = new DataBaseDataContext();
var Item = db.FirstOrDefault(k => k.ID == SomeID);
NameTextBox.Text = Item.Name;
PriceTextBox.Text = Item.Price.ToString();
保存機能:
DataBaseDataContext db = new DataBaseDataContext();
var Item = db.FirstOrDefault(k => k.ID == SomeID);
Item.Name = NameTextBox.Text;
Item.Price = Convert.ToDecimal(PriceTextBox.Text);
...
db.SubmitChanges();
なぜ変更が保存されないのか気になったのでdb.SubmitChanges()
、保存機能にブレークポイントを設定しました(読み込みは正常に機能します)。しかし、VisualStudio で値のプレビューを調べたところ、フォームで編集した値ではなく、以前に読み込まれた値を送信したいことがわかりました。
コードの他の場所で機能するため、何かが欠けているに違いありませんが、それが何であるかわかりません。