因此,在使用ajax请求将数据发送到控制器之后,我需要重新加载页面。控制器将其保存到数据库中,然后重新加载的页面应具有更新的内容:
[控制器]
function Reprocess() {
var checkedID = '#' + document.querySelector('input[name="select"]:checked').value;
var line = $(checkedID)[0].children;
var obj = {};
obj.ID = line[0].textContent;
obj.EndDate = line[1].textContent;
obj.ProcessedDate = line[2].textContent;
$.ajax({
type: "POST",
url: '@Url.Action("SaveReprocessData", "Processing")',
contentType: "application/json; charset=utf-8",
data: JSON.stringify(obj),
dataType: "json",
success: function (result) {
window.location.reload();
alert("updated licenses");
},
error: function (ex) {
alert(ex);
console.log("we have failed");
}
});
}
[查看]
override func viewDidLoad() {
self.view.layer.anchorPoint = CGPoint(x: 0, y: 0)
}
func scaleMyView() {
self.view.transform = CGAffineTransform(scaleX: 1.1, y: 1.1)
}
SaveReprocessData应该返回什么以在View上接收新视图?以及如何使用该收益?
答案 0 :(得分:0)
我同意tobias。通过尝试重新加载页面来克服使用ajax的全部目的,但是解决方案是仅更改 SaveReprocessData 方法的返回类型并返回新的数据列表
[HttpPost]
public RunModel SaveReprocessData(Run runPost)
{
runManager.SaveToDataBase(runPost);
return runManager.GetRunModelList();
}
此外,除非在执行ajax POST请求之后客户端在服务器端生成了一些值,否则可以避免一起对数据库进行额外的调用。您只需要将您的JavaScript代码更新为类似的内容
$.ajax({
type: "POST",
url: '@Url.Action("SaveReprocessData", "Processing")',
contentType: "application/json; charset=utf-8",
data: JSON.stringify(obj),
dataType: "json",
success: function (result) {
// window.location.reload();
// alert("updated licenses");
reloadView(obj);
},
error: function (ex) {
alert(ex);
console.log("we have failed");
}
});