のは、(追加されたコメントを参照)sourceを分析してみましょう:ここ
<script runat="server">
private Model.User _user;
protected void Page_Load(object sender, EventArgs e) {
// _user is stored in the session, the *very same* object
_user = HttpContext.Current.Session[Model.Common.UserSessionNameValue] as Model.User;
if (_user == null) {
_user = new Model.User();
}
var submit = Request.Form["Submit"] ?? String.Empty;
if (!String.IsNullOrWhiteSpace(submit)) {
var strUserId = Request.Form["UserId"] ?? String.Empty;
var userName = Request.Form["UserName"] ?? String.Empty;
var email = Request.Form["Email"] ?? String.Empty;
Int32 userId;
Int32.TryParse(strUserId, out userId);
// So, if you update _user's fields. What is stored in the session will be changed as well.
_user.UserId = userId;
_user.UserName = userName;
_user.Email = email;
// Regardless, if you "saved" back or not
if (submit.Equals("Submit with Save")) {
// because the left-hand side and the right-hand side are the same object
HttpContext.Current.Session[Model.Common.UserSessionNameValue] = _user;
}
Response.Redirect(Request.RawUrl);
}
}
</script>
は、あなたが意図せずにそれを更新しないようにするために何ができるかです:
<script runat="server">
private Model.User _user;
protected void Page_Load(object sender, EventArgs e) {
if (!string.IsNullOrWhiteSpace(Request.Form["Submit"])) {
var strUserId = Request.Form["UserId"] ?? string.Empty;
var userName = Request.Form["UserName"] ?? string.Empty;
var email = Request.Form["Email"] ?? string.Empty;
Int32 userId;
Int32.TryParse(strUserId, out userId);
_user = new Model.User()
{
UserId = userId;
UserName = userName;
Email = email;
}
if (Request.Form["Submit"] == "Submit with Save") {
HttpContext.Current.Session[Model.Common.UserSessionNameValue] = _user;
}
Response.Redirect(Request.RawUrl);
}
}
</script>
'変更オブジェクトpage2'であなたはどのようにオブジェクトを変更しますか?どんな種類のオブジェクトですか?オブジェクトのプロパティを変更しているように感じ、結果が表示されます。 – Jonesopolis
@Jonesopolis、私はあなたが私が供給したプロジェクトの何人かを見ることができます。それはUserオブジェクトで、プロパティの値を変更します。あなたが言っていることに基づいて、オブジェクトはセッションに自動的に保存されますか?または、セッションからオブジェクトを取得するとき、私が実際にやっているのはオブジェクトへのポインタを取得することだけです。 – RoLYroLLs