gpt4 book ai didi

javascript - 如何使用 JavaScript 在 MVC 项目中加载 View ,然后加载其中的部分 View ?

转载 作者:行者123 更新时间:2023-12-03 11:15:08 24 4
gpt4 key购买 nike

无论我做什么,我都会得到相反的顺序。我只想在ajax完成某个操作后刷新整个页面,然后简单地加载某个部分 View ,这是我的尝试:

$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: '@Url.Action("DeleteSensor", "PredefinedViews")',
data: JSON.stringify({ pviID: PredefineViewsItemID, pID: PredefineViewID }),
dataType: "json",
complete: function (result) {
location.reload(true);
},
success: function (result) {;
var urlShowSensors = "@Url.Action("ShowSensorNames", "PredefinedViews", new { predefinedViewID = "PredefID" })";
urlShowSensors = urlShowSensors.replace("PredefID", PredefineViewID);
$(divSensorNames).load(urlShowSensors);

在调试中我看到它成功加载了部分 View ,但最终它执行了 location.reload(true);最后,这反过来又给我留下了一个开放的 View ,而没有开放的部分 View 。 有没有办法我可以首先让它执行 location.reload(true);然后加载我的部分 View ?

更新!看来我从来没有把 document.ready 放在我的脚本标签中,这是我的整个脚本:

<script type="text/javascript">
$(function () {
$(".sensor-delete-table").on("click", function () {
var divSensorNames = $("#sensorNames");
var tr = $(this).parents('tr:first');
var PredefineViewsItemID = tr.find("#PredefineViewsItemID").html();
var PredefineViewID = tr.find("#PredefineViewID").html();
var amount = parseInt($("[data-id='" + PredefineViewID + "']").text());
var flag = confirm('@Html.Localize("deleteCheck")');
var urlShowNewSensors = "@Url.Action("ShowSensorNames", "PredefinedViews", new { predefinedViewID = "PredefineViewID" })";
urlShowNewSensors = urlShowNewSensors.replace("PredefineViewID", PredefineViewID);
if (PredefineViewID != "" && flag) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: '@Url.Action("DeleteSensor", "PredefinedViews")',
data: JSON.stringify({ pviID: PredefineViewsItemID, pID: PredefineViewID }),
dataType: "json",
success: function (result) {
location.reload(true);
},
complete: function (result) {

var urlShowSensors = "@Url.Action("ShowSensorNames", "PredefinedViews", new { predefinedViewID = "PredefID" })";
urlShowSensors = urlShowSensors.replace("PredefID", PredefineViewID);
$(divSensorNames).load(urlShowSensors);
},

});
}
});
});
</script>

我想我可以这样做,所以有人可以在这里纠正我的代码吗?基本上,当我单击按钮时,它会删除我的部分 View 中表中的一行,然后转到 Controller ,在 Controller 中从数据库中删除记录。现在,如果一切顺利,我想在我的主视图中刷新一个表,这就是为什么我坚持执行 location.reload 然后我想加载我的部分 View ,这就是为什么我需要在某个 div 上加载一个 url .

最佳答案

在 document.ready 函数中加载部分 View

并将 location.reload() 放入 success block

       $(document).ready(function()
{
var urlShowSensors = "@Url.Action("ShowSensorNames", "PredefinedViews",
new { predefinedViewID = "PredefID" })";
urlShowSensors = urlShowSensors.replace("PredefID",
PredefineViewID);
$(divSensorNames).load(urlShowSensors);
});


$(".sensor-delete-table").on("click", function () {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: '@Url.Action("DeleteSensor", "PredefinedViews")',
data: JSON.stringify({ pviID: PredefineViewsItemID, pID: PredefineViewID
} ),
dataType: "json",
success: function (result) {
location.reload(true);}});
});

关于javascript - 如何使用 JavaScript 在 MVC 项目中加载 View ,然后加载其中的部分 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27378610/

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