gpt4 book ai didi

c# - 通过 HTML 按钮调用 C# 函数

转载 作者:太空狗 更新时间:2023-10-29 18:14:56 27 4
gpt4 key购买 nike

我想做的是通过按钮调用函数。

我将留给您一个不起作用的简单代码!:

@{
protected void print()
{
@<p>WELCOME!</p>
}
}


<form>
<button onclick="print" value="CLICK ME"/>
</form>

关于如何完成我在上面的代码中尝试做的事情有什么想法吗?

注意:我没有使用 MVC

最佳答案

我知道这是一个老问题,但这是当您查找如何在 ASP Razor 中运行 OnClick 方法时在 google 上的第一个结果,我认为有更好的方法这比目前接受的答案。我不知道在撰写原始答案时这是否是新的,但我确实认为这是处理此行为的最佳方式,因为它不需要手写 AJAX 或 JavaScript 方法。

对于那些从 Web 窗体转入 ASP Razor 的人来说,重新创建这种行为的最好(也是最简单)的方法可能是使用处理程序方法。处理程序方法附加到 Get 和 Post 方法,并且可以使用 ASP Razor 生成的表单运行。

默认情况下,您的 cshtml.cs 页面将具有如下所示的函数:

public async Task OnPostAsync()
{
<Do Post Stuff Here>
}

但有时,您想根据帖子的确切原因做一些具体的事情。您可以在此处实现处理程序方法。

public async Task OnPostButton()
{
<Do button stuff here>
}

如果您随后想使用按钮方法,只需创建一个指示其处理程序方法的 ASP 按钮。

<form asp-page-handler="button" method="post">
<button class="btn btn-default">Button</button>
</form>

这将告诉 razor 页面在结果按钮的查询字符串中添加对按钮处理程序方法的引用,就像这样。

<form method="post" action="/page?handler=button">

访问它会告诉 Razor 使用命名的处理程序方法。只要处理程序的名称与函数名称和 HTTP 方法匹配,它就会运行该函数。

您的代码如下所示:

@{
protected void print()
{
@<p>WELCOME!</p>
}

public async Task OnPostPrint()
{
print();
}
}

<form asp-page-handler="Print" method="post">
<button class="btn btn-default">CLICK ME</button>
</form>

不要忘记,这只会调用 OnPostPrint 方法。如果您需要在每次发布时都运行一些东西,那么它也需要使用该方法。可能最好将这些任务分解成一个单独的函数,然后从 post 方法中调用它。更易于维护。

有关方法处理程序的更多信息,包括如何向它们添加变量,请查看 Mikes DotNetting!他很好地解释了这一点,我觉得我从他的文章中学到了很多东西。

https://www.mikesdotnetting.com/article/308/razor-pages-understanding-handler-methods

关于c# - 通过 HTML 按钮调用 C# 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20766306/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com