在Razor页的ASP.NET Core中,如何为按钮类型的按钮执行基本的onclick事件?
我是否需要连接AJAX GET请求才能使下面的“重新发送代码”按钮起作用?关于OnPost这样的话题有很多话题。.但是我不想发布。
能这么难吗?
<form method="post">
<div asp-validation-summary="All"></div>
<div class="form-group-item">
<label asp-for="Input.TwoFactorCode"></label>
<input asp-for="Input.TwoFactorCode" class="input" />
<span asp-validation-for="Input.TwoFactorCode"></span>
</div>
<div class="form-group-item">
<label class="margin-0" asp-for="Input.RememberMachine">
<input asp-for="Input.RememberMachine" />
@Html.DisplayNameFor(m => m.Input.RememberMachine)
</label>
</div>
<div>
<button type="button" asp-page-handler="ResendCode" class="btn btn-light">Resend Code</button>
<button type="submit" class="btn btn-secondary">Confirm</button>
</div>
</form>
答案 0 :(得分:1)
按目前的状态,该按钮不会执行任何操作。您可以使用JavaScript拦截按钮单击,然后使用AJAX(下面的jQuery示例)触发get
请求:
$('.btn.btn-light').on('click', function(){
$.get('?handler=ResendCode', data, function(){
...
});
});
答案 1 :(得分:0)
您可以尝试将按钮更改为使用formmethod="get"
:
<button type="submit" formmethod="get" asp-page-handler="ResendCode" class="btn btn-light">Resend Code</button>
请注意,这仅适用于具有type="submit"
或type="image"
的按钮(其他type
值不会导致表单提交)。也是HTML5属性。
参考:
答案 2 :(得分:0)
也许可以尝试制作自己的自定义处理程序方法,而不是OnPost()和OnGet()