asp.net-core - Asp.Net Razor Pages OnClick 未触发

标签 asp.net-core razor razor-pages

我的 Index.cshmtl 中有这个按钮

<button value="Search" name="Search" submit="Search" class="searchbutton" onclick="btnSearch_Click">Search</button>

点击此按钮会发送一条消息。

在我的 Index.cshtml.cs 中我有这个 bool 变量和函数

private bool SearchButton;
protected void btnSearch_Click(object sender, EventArgs e)
{
    SearchButton = true;
}

所以我的问题是,如果我单击按钮,代码将永远不会进入 btnSearch_Click 函数

最佳答案

您可以在 Razor Pages 中使用命名处理程序方法来模拟 Web 窗体中的服务器端事件处理程序。

这是一个内容页面:

@page
@model RazorPagesDemo.Pages.HandlerDemoModel
@{
}
<p>@Model.Message</p>
<form asp-page-handler="Search" method="post">
    <input type="text" asp-for="SearchTerm" />
    <button class="btn btn-default">Search</button>
</form>

这是 PageModel:

public class HandlerDemoModel : PageModel
{
    [BindProperty]
    public string SearchTerm { get; set; }
    public string Message { get; set; }

    public void OnPostSearch()
    {
        Message = $"You searched for {SearchTerm}";
    }
}

OnPostSearch 等同于您的 btnSearch_Click 方法。您使用 asp-page-handler 属性连接您的表单以执行该方法。您可以在此处阅读有关 Razor 页面处理程序方法的更多信息:https://www.learnrazorpages.com/razor-pages/handler-methods

关于asp.net-core - Asp.Net Razor Pages OnClick 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66025271/

相关文章:

asp.net-mvc - 如何在 nopCommerce v2.20 插件中创建 EditorTemplate

asp.net - 在服务器上缓存完整响应

asp.net-core - 检查是否向 Razor 页面发出请求

javascript - 使用动态 HTML 包装 Razor 页面

asp.net-core - 如何统计 ASP.NET Core 2.0 中具有特定角色的所有用户

c# - 限制 View 中的内联代码具有与模型相关的代码以外的代码

c# - 在具有 Windows 身份验证的 ASP.Net 5 中使用 IIS Express/Kestrel 时,User.IsInRole 始终为 false

html - 使用媒体查询调整响应表

azure - ASP .NET Core 和 Azure 表存储

c# - .NET Core 2.1 HttpClient 不返回预期值