繁体   English   中英

.NET 5 Razor 页面 OnGet() 未触发

[英].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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM