gpt4 book ai didi

javascript - 从 Javascript ASP.NET 调用 [HTTPPost]

转载 作者:行者123 更新时间:2023-11-30 20:44:13 27 4
gpt4 key购买 nike

我在我的 Controller 中使用了一种从 API 导入数据的方法。我想从两个位置调用此方法。首先是 View (当前工作),其次是 javascript 函数。

Controller 方法的启动:

[ActionName("ImportRosters")]
[HttpPost]
public ActionResult PerformImportRosterData(int id, int? actualLength, int? rosterLength)
{
var authenticator = Authenticator(id);
var rosters = authenticator.Api().RosterData().ToDictionary(x => x.Id);

var databaseRosterDatas = SiteDatabase.DeputyRosterData.Where(x => x.SiteID == id)
.ToDictionary(x => x.Id);

Javascript 函数:

$("#btnDeputyRunNowUpdate").click(function() {
$("#btnRunDeputyNow").modal("hide");
ActualLength = $("#actualRunLength").val();
RosterLength = $("#rosterRunLength").val();
$.ajax({
type: "POST",
url: "/deputy/PerformImportRosterData",
data: { SiteIDRoster, ActualLength, RosterLength }
});
SiteIDRoster = null;
location.reload();
$("#btnRunDeputyNow").modal("hide");
toast.show("Import Successful", 3000);
});

正在设置所有值,但我在 url 行上收到 404 错误发布https://example.org/deputy/PerformImportRosterData 404()

我需要一种方法能够从 html 和 JS 调用这个 c# 方法

最佳答案

如果您要修改 AJAX 中的 URL,则可以这样做。它应该看起来像

url: '<%= Url.Action("YourActionName", "YourControllerName") %>'

url: @Url.Action("YourActionName", "YourControllerName") 

还有一件事,我看不到你是否对调用的结果做了任何事情。你的脚本没有成功部分

 success: function(data) {//do something with the return}

并且在您的调用中包含错误处理程序会非常有帮助。关于 AJAX 应该是什么样子的完整示例:

$.ajax({
url: "target.aspx",
type: "GET",
dataType: "html",
success: function (data, status, jqXHR) {
$("#container").html(data);
alert("Local success callback.");
},
error: function (jqXHR, status, err) {
alert("Local error callback.");
},
complete: function (jqXHR, status) {
alert("Local completion callback.");
}
})

有关 AJAX 的优秀教程,请阅读 this document

评论后的变化:我当前的代码如下:

$("#btnDeputyRunNowUpdate").click(function() {
$("#btnRunDeputyNow").modal("hide");
ActualLength = $("#actualRunLength").val();
RosterLength = $("#rosterRunLength").val();
$.ajax({
type: "POST",
url: '<%= Url.Action("PerformImportRosterData", "DeputyController") %>',
data: { SiteIDRoster, ActualLength, RosterLength },

success: function(data) {
console.log(data);
console.log("TESTHERE");

}
});
}

更新:又注意到一件事。您在 Controller 和 AJAX 中的参数不匹配。请尝试将 AJAX 调用中的几行替换为:

    url: "/deputy/PerformImportRosterData",
data: { id: yourIDValue, actualLength: youractualLengthValue,
rosterLength :yourrosterLengthValue }

请记住在 javascript 中设置所有变量值,如果它们没有值则将它们设置为 null。

你能试试复制粘贴下面的代码吗

$.ajax({
type: "POST",
url: "/deputy/PerformImportRosterData",
data: { SiteIDRoster:999, ActualLength:1, RosterLength:2 }
});

如果它导致任何错误,请告诉我。

关于javascript - 从 Javascript ASP.NET 调用 [HTTPPost],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48915393/

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