[英]How do I get the ID in onget and the use handler in asp.net core razor page?
[英].NET 5 Razor Page OnGet() not firing
只是一个用于添加员工的基本 Razor 页面,但在页面加载时 OnGet() 不会触发/被击中。 我在“Managers = new SelectList”行中设置了一个断点来测试它,但它永远不会被击中。 我错过了什么?
public IActionResult OnGet()
{
if ((Request.Cookies["Admin"] != null) && (Request.Cookies["Admin"] == "True"))
{
ModelState.Clear();
List<Employee> managers = _merchDAL.GetManagers();
Managers = new SelectList(managers, nameof(Employee.FirstName), nameof(Employee.FirstName), null, nameof(Employee.Department));
}
else
{
RedirectToPage("../Home");
}
return Page();
}
页面上的控件是:
<div class="form-group row">
<div class="col-3">
<label asp-for="employee.Manager"></label>
</div>
<div class="col-6">
<select asp-for="employee.Manager" class="form-control" asp-items="Model.Managers"> </select>
</div>
<span asp-validation-for="employee.Manager" class="text-danger"</span>
</div>
编辑
该页面是通过单击“管理员工”页面上的“添加员工”按钮加载的。
<button asp-page="AdminAddEmployee" class="btn btn-primary">Add Employee</button>.
这并没有导致 OnGet() 触发。 修复它的方法是将其更改为:
<a asp-page="AdminAddEmployee" class="btn btn-primary">Add Employee</a>
OnGet()
不会在 POST 请求上触发。 如果您需要在 GET 和 POST 请求中执行代码,那么您可以将其放入一个方法中并从两者中调用该方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.