blob: 47bcf75bb8b79c4f14c184b80f7db27078acefff [file] [log] [blame]
@*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*@
@page
@using Microsoft.AspNetCore.Http
@model IndexModel
@{
ViewData["Title"] = "Asp.Net Core Session Sample";
}
<h1>@ViewData["Title"]</h1>
<h2>State management</h2>
<div class="row">
<div class="col-md-8">
<form method="post">
<div class="panel panel-default">
<div class="panel-heading">
<button type="submit" asp-page-handler="ChangeAge" class="pull-right btn btn-danger">Change Age</button>
<h3 class="panel-title" style="line-height:2.1">Name and Age</h3>
</div>
<div class="panel-body">
<p>
The name and age are stored in session. Select the <span style="font-weight:bold">Change Age</span>
button to update the session to a new random age value.
</p>
<p>
Session values by the model with
<code>@@Model.&lt;PropertyName&gt;</code>:
</p>
<p><b>Name:</b> @Model.SessionInfo_Name <b>Age:</b> @Model.SessionInfo_Age</p>
<hr>
<p>Session values direct </p>
<p>
<b>Name:</b> @HttpContext.Session.GetString(IndexModel.SessionKeyName)
<b>Age:</b>
@HttpContext.Session.GetInt32(IndexModel.SessionKeyAge).ToString()
</p>
</div>
</div>
</form>
</div>
</div>
<div class="row">
<div class="col-md-8">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">HttpContext.Items Middleware Value</h3>
</div>
<div class="panel-body">
<p>
The middleware value is set into the <code>HttpContext.Items</code> collection by
the <code>HttpContextItemsMiddleware</code> before Razor Pages processes the request.
The value is retreived by the page and displayed.
</p>
<p>Value: @Model.SessionInfo_MiddlewareValue</p>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-8">
<form method="post">
<div class="panel panel-default">
<div class="panel-heading clearfix">
<button type="submit" asp-page-handler="UpdateSessionDate" class="pull-right btn btn-danger">Update Session Time</button>
<a href="/" class="pull-right btn btn-danger" style="margin-right:5px">Reload Page (No Update)</a>
<h3 class="panel-title" style="line-height:2.1">Session Time</h3>
</div>
<div class="panel-body">
<p>
The session time is stored in session. Select the <span style="font-weight:bold">
Reload Page (No Update)
</span> button to display the current time and the time stored in session.
Select the <span style="font-weight:bold">Update Session Time</span> button to store the current time in session.
</p>
<p>Current Time: @Model.SessionInfo_CurrentTime</p>
<p>Session Time: @Model.SessionInfo_SessionTime</p>
</div>
</div>
</form>
</div>
</div>