【发布时间】:2014-12-09 20:47:06
【问题描述】:
无论我做什么,我总是得到相反的顺序。我只想在 ajax 完成某个动作后刷新整个页面,然后简单地加载某个局部视图,这是我的尝试:
$.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);
在调试中,我看到它成功加载了局部视图,但它最终执行了 location.reload(true);最后 这反过来又让我有一个开放的视图,而没有开放的局部视图。 有没有办法让我先让它做 location.reload(true);然后加载我的部分视图?
更新! 看来我从来没有将 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>
我认为我可以这样做,那么任何人都可以在这里更正我的代码吗?基本上,当我单击一个按钮时,它会在我的局部视图中删除表中的一行,然后它会转到一个控制器,从数据库中删除记录。现在,如果一切顺利,我想在我的主视图中刷新一个表,这就是为什么我坚持做一个 location.reload 然后我想加载我的部分视图,这就是为什么我需要在某个 div 上加载一个 url .
【问题讨论】:
标签: javascript jquery ajax asp.net-mvc visual-studio