在进行AJAX调用方面,我们使用以下方法:
$.ajax({
type: "POST",
async: false,
url: '@Url.Action("CheckPhone", "Progg")',
data: { input: WebPhoneNum
},
success: function (iReturn) {
if (iReturn == 0) {
alert(Phone Number must be in format (XXX) XXX-XXXX. Please Re-Enter');
submitval = false;
}
},
error: function (xhr, status, error) {
var err = eval("(" + xhr.responseText + ")"); // Boil the ASP.NET AJAX error down to JSON.
alert('Call to CheckPhone failed with error: ' + err.Message); // display the error raised by the server
}
});
注意它如何调用控制器并返回一个值。我想知道是否有更好的方法来做到这一点。我知道.NET MVC内置了一些ajax调用,但找不到适合我在下面做的事情。我知道.NET MVC有一个带有超链接的ajax调用构建,但这不是我需要的。我只需要调用一个返回一些值的控制器。
感谢
答案 0 :(得分:0)
你需要解决的只有一件事:
async: false
必须成为:
async: true
因为否则你没有做AJAX。您正在向冻结客户端浏览器的服务器发送同步请求。
除此之外,您似乎正在使用此AJAX请求进行一些远程验证。您可能会看一下内置的[Remote]
属性,这可以避免编写所有这些代码。您需要做的就是装饰需要使用此属性验证的视图模型属性,然后通过包含正确的脚本启用不显眼的客户端验证。
答案 1 :(得分:0)
尝试使用ajax验证输入的格式? 我建议您了解数据注释以验证此类详细信息(请在提交表单上重新验证服务器,如同一个好的做法)