我需要从 MVC、NET(不是 blazor)中的 javascript 访问一些 C# 代码。 我有以下内容。这是针对 .NET 和 MVC 堆栈的特定问题,而不是像堆栈溢出中的另一个问题那样的通用 ajax 问题。我没有收到任何错误消息,它只是在 ajax 调用后继续执行下一条语句。我认为可能有两个可能的问题。我的网址:“/Home/CreatePostcodeFromCooperatives”是错误的。 或者我的 C# 程序集不是程序集的一部分?或类似的东西。我对网络技术没有那么丰富的经验,我来自数据库背景,但是让这个链接正常工作不是那么困难吗?看不出还有什么不对的地方。另外,C# 的返回值是否需要某种特殊格式或字符串(按照现在的情况)就可以? 这可能是另一个原因? 谢谢!
console.log("just before /Home/CreatePostcodeFromCoordinates");
$.ajax({
type: "POST",
url: '/Home/CreatePostcodeFromCoordinates',
data: { param1: longitude, param2: latitude },
success: function (response) {
console.log('success');
console.log(response);
},
error: function (error) {
console.error(error);
}
});
最后,这就是我设法解决它的方法: 我正在 MVC 中调用 C# 方法。确保您的 C# 方法未声明为静态。就像这样。另外,我每天大约花了 8 个小时试图理解为什么我无法得到任何结果。您需要 async = false 选项。否则你会花费相似的时间,甚至更多!
C# 公共字符串CreateCoordinatesFromPostcode(字符串邮政编码) { // 逻辑 string result = "XXXXXX" // 你的逻辑 返回结果; }
JavaScript
let result = '';
$.ajax({
type: "POST",
url: '/clib/CreateCoordinatesFromPostcode',
async: false,
data: { postcode: postcode },
success: function (response) {
result = response;
},
error: function (error) {
console.error(error);
}
});
console.log("just after /clib/createCoordinatesFromPostcode");
return result;