【发布时间】:2020-11-24 01:36:38
【问题描述】:
我有一个简单的表单,带有一些后期处理程序。我只想在输入不为空时提交表单。
<form method="post">
<input asp-for="Feedback" />
<button type="submit" asp-page-handler="Test">Submit</button>
</form>
public void OnPost() {}
public void OnPostTest() {}
当我在Feedback 属性上没有[Required] 注释时,当我单击提交按钮时,它会正确触发OnPostTest() 方法。但我确实想要所需的验证。
public string Feedback { get; set; }
但是,当我添加[Required] 注释时,当我单击提交按钮时,它总是会触发OnPost() 方法。但是我想触发OnPostTest()方法。
[Required]
public string Feedback { get; set; }
我认为asp-page-handler 很简单,我错过了什么?
我正在使用 .NET Core 3.1
【问题讨论】:
-
这听起来不对……也许还有其他事情发生。应该调用
OnPostTest,只需使用ModelState.IsValid == false。 -
@JeremyLakeman 感谢您的确认。我发现罪魁祸首在一个扩展 js 文件中,我们在其中使用了来自 jQuery Validation 的
submitHandler。我会将其添加到我自己的答案中。
标签: c# asp.net-core razor razor-pages unobtrusive-validation