gpt4 book ai didi

c# - 防止重复调用刷新操作

转载 作者:太空狗 更新时间:2023-10-30 01:20:32 27 4
gpt4 key购买 nike

我的 View 上有以下操作链接,它调用 Controller 上的操作。

@Html.ActionLink("Send Request", "SendRequest", new { id = item.CertificateId })

单击链接后将形成以下 URL。

http://localhost:61742/Controller/SendRequest/17

现在,当我点击刷新时,再次调用相同的操作,将重复的行插入到我的表中。有没有一种方法可以防止重复调用我的操作,或者我应该在向我的表中插入一行之前添加检查。

我什至尝试更改我的 View 以调用 HttpPost 操作,但在刷新时也会再次调用它。

最佳答案

问题是因为您正在刷新的页面是您的执行操作 (SendRequest) 页面。

我建议您的 Action 将重定向返回到您的原始页面或“感谢您提交”页面。

您可以在您的 SendRequest 操作中执行此操作(您应该将其保留为 HttpPost),例如:

[HttpPost]
public ActionResult SendRequest(int id)
{
//Do you Send Request logic here

//Redirect the user to another page once complete
return RedirectToAction("Thanks");
}

这会将用户带到如下 URL:http://localhost:61742/Controller/Thanks/

当然,用户仍然可以按浏览器的“后退”按钮返回到 SendRequest URL,因此我建议尽可能多地进行服务器端验证,以防止重复输入。但除此之外,对于选择多次单击“发送请求”链接的用户,您无能为力。

关于c# - 防止重复调用刷新操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18825027/

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