Общий код будет перемещен в базовый класс (basepagemodel в случае страницы razor), а класс basepagemodel должен быть унаследован от PageModel, как показано ниже:
public class BasePageModel : PageModel
{
public bool UserInfo
{
get
{
// play with httprequest and extract user login name, accesstoken, etc and perform validation according to your requirement
return !string.IsNullOrEmpty(HttpContext.Request.Cookies["accesstoken"]);
}
}
// another method
}
public class indexModel : BasePageModel
{
// request handling here
}
Установить basepagemodel в качестве модели для страницы общего макета (_Layout ) как показано ниже:
@model Application.BasePageModel
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=EDGE" />
<title>@ViewData["Title"]</title>
<environment include="Development,Production">
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/lib/jquery-ui/dist/css/jquery-ui.css" />
<script src="~/lib/jquery/dist/jquery.min.js"></script>
</environment>
</head>
<body>
<div>
<a>
<strong>
@{
<span style="margin-right:-2px;">Welcome</span>
if (Model.UserInfo)
{
<span>User Logged in</span>
}
}
</strong>
</a>
</div>
</body>
</html>