gpt4 book ai didi

c# - MVC - 使用 AJAX 调用导致服务器端页面验证在按钮单击时触发

转载 作者:行者123 更新时间:2023-11-29 15:44:06 25 4
gpt4 key购买 nike

在我正在开发的应用程序中,我有一个要求,即在单击某个按钮时,会在一些相关的文本框上触发验证;如果它们没有通过,则什么也不会发生,否则会发生从 AJAX 调用触发的操作。此 AJAX 调用返回一些有关操作成功的消息。

我的部分观点看起来有点像这样:

<div>
<div id='cell-phone'>
@Model.ValidationMessageFor(x=>x.Model.CellNumber)
@Model.TextBoxFor(x=>x.Model.CellNumber)
</div>
<div id='pager'>
<!-- Ditto, only x.Model.Pager; yes, some people use pagers still. -->
</div>
<div id='page-address'>
<!-- ... x.Model.PageAddress ... -->
</div>
<div id='pager-test'>
<a href='#' id='test-pager' class='button'>Test</a>
<span id='test-result'></span>
</div>
</div>

<script>
var $cellNum = $('#cell-phone input'),
$pagerNum = $('#pager input'),
$pageAddress = $('#page-address input'),
$testPager = $('#pager-test'),
$testResult = $('#test-result');

$(document).ready(function () {
$testPager.click(function () {
pagerTest();
});
});

function pagerTest() {
var args = { address: $pageAddress.val() };
$.getJSON('@Url.Action("SendTestPage")', args, function(result) {
$testResult.html(result.Message);
});
}
</script>

...在服务器级别...

public JsonResult SendTestPage(string address)
{
// SNIP: Other unnecessary details.
var result = new EmailSendResult
{
success = SendEmailMethod(address)
};
result.message = result.success
? "Message sent!"
: "Couldn't send message...";

return result;
}

....

public class EmailSendResult
{
public bool success;
public string message;
}

问题:虽然我能够取回消息/成功值,但我还需要触发 View 模型的验证。我不知道如何使用 AJAX 调用来执行此操作。我怀疑是 A) 我在工作中使用了错误的工具,或者 B) 我在一项工作中使用了正确的工具,但我需要其他工具。我缺少什么才能触发验证?

最佳答案

当您点击“test-pager”链接时,该操作将被调用,但您的表单验证不会触发,因为您的链接不是提交。如果你想验证工作,你必须在表单上有一个提交按钮。当用户单击它时,将触发验证。所以把 test-pager 改成这样:

<input type="submit" id="test-pager" class="button" />

关于c# - MVC - 使用 AJAX 调用导致服务器端页面验证在按钮单击时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14506190/

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