gpt4 book ai didi

c# - 使用 jquery 刷新验证码图像

转载 作者:行者123 更新时间:2023-11-29 22:00:48 29 4
gpt4 key购买 nike

我在 razor 页面上有一个 HTML 图像标签。此图像显示生成的验证码。单击它时,我添加了一些 jquery 来刷新此图像。这适用于我的电脑,但一旦我将其发布到服务器,单击图像时没有任何反应。

<img id="captcha-image" src="@Url.Action("Captcha", "Home")" />
...
$("#captcha-image").click(function () {
this.src = "@Url.Action("Captcha", "Home")";
});

编辑:
我确定发生这种情况是因为图像可能已被浏览器缓存。现在我想在 GET 请求中发送一个随机数,这样浏览器缓存就不会抵消我的努力。

现在的问题是如何在合适的地方得到随机数:

$("#captcha-image").click(function () {
this.src = "@Url.Action("Captcha", "Home", new { r = System.Random.Next() })";
});

这将不起作用,因为 Next() 不是 System.Random 中的静态方法,我需要一个 Random 对象来引用为了使用它。

我还尝试使用 JavaScript 随机方法:

$("#captcha-image").click(function () {
var randomNumber = Math.floor(Math.random());
this.src = "@Url.Action("Captcha", "Home", new { r = randomNumber})";
});

这里的问题是变量 randomNumber@Url.Action 的 c# 代码块范围内不可见。

最佳答案

您可以使用 replace 来更改 randomNumber 字符串及其值,也可以将外部双引号更改为单引号并将 randomNumber 传递给匿名对象初始化器。

this.src = '@Url.Action("Captcha", "Home", new { randomNumber = "_randomNumber_"})'.replace("_randomNumber_", randomNumber );

其他方法可能是将服务器端代码与 javascript 连接起来以生成查询字符串

this.src = '@Url.Action("Captcha", "Home")?randomNumber' + randomNumber ;

关于c# - 使用 jquery 刷新验证码图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23885618/

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