我有一个使用淘汰赛的MVC应用程序。在我的视图模型中,我对控制器方法进行了ajax调用,从数据库返回记录列表。那个电话成功没有问题。但是为了编辑特定的记录,我在另一个永远不会到达方法的控制器上对另一个方法进行了另一个ajax调用,而是返回状态代码302.响应头显示" / WebUI / System / Account / UnauthorizedAccess" 。控制器使用Authorize属性进行修饰。如果我用AllowAnnonymous()装饰失败的方法,那么一切都很好。不幸的是,我们不想将其留在方法上。
这是我的viewModel:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
function BranchViewModel() {
var self = this;
self.BranchID = ko.observable("");
self.BranchNum = ko.observable("");
self.BranchName = ko.observable("");
var branch = {
BranchID: self.BranchID,
BranchNum: self.BranchNum,
BranchName: self.BranchName,
};
self.branch = ko.observable();
self.branches = ko.observableArray();
$.ajax({
url: "GetBranches",
type: 'POST',
contentType: 'application/json',
data: {},
success: function (data) {
self.branches(data); //Put the response in ObservableArray
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
self.edit = function (branch) {
self.branch(branch);
}
// Update details
self.update = function () {
var editedBranch = self.branch();
$.ajax({
url: "UpdateBranch",
type: 'POST',
contentType: 'application/json',
data: ko.toJSON(editedBranch),
success: function (data) {
self.branches.removeAll();
self.branches(data); //Put the response in ObservableArray
self.branch(null);
}
})
.fail(
function (xhr, textStatus, err) {
alert(err);
});
}
}
var viewModel = new BranchViewModel();
ko.applyBindings(viewModel);
&#13;
以下是控制器中的方法。 GetBranches工作正常。 UpdateBranch,不是那么多。
Public Function GetBranches() As JsonResult
Using modelContext As New Repository(ConnectionInformation.GetSQLConnectionString)
Dim data = modelContext.Branch.ToList()
Return Json(data, JsonRequestBehavior.AllowGet)
End Using
End Function
Public Function UpdateBranch(item As Branch) As JsonResult
Using modelContext As New Repository(ConnectionInformation.GetSQLConnectionString)
Dim branch = modelContext.Branch.Single(Function(x) x.BranchID = item.BranchID)
If branch IsNot Nothing Then
branch.BranchNum = item.BranchNum
branch.BranchName = item.BranchName
modelContext.SaveChanges()
Dim data = modelContext.Branch.ToList()
Return Json(data, JsonRequestBehavior.AllowGet)
End If
End Using
Return Json("")
End Function
以下是网络信息:
请求URL:xxxx:// localhost / WebUI / System / Branch / UpdateBranch 请求方法:POST 状态代码:302找到 远程地址:[:: 1]:80 推荐人政策:no-referrer-when-downgrade
响应标头 查看源 缓存控制:无缓存,无存储 内容长度:480 内容类型:text / html的;字符集= utf-8的 日期:2017年8月4日星期五12:33:06 GMT 到期日:-1 位置:/ WebUI中/系统/帐号/ UnauthorizedAccess 附注:无缓存 X-Content-Type的选项:NOSNIFF X框选项:SAMEORIGIN X-UA-兼容:IE =边缘; X-XSS-保护:1;模式=块
请求标头 查看源 接受: / Accept-Encoding:gzip,deflate,br 接受语言:EN-US,EN; Q = 0.8 连接:保持活跃 内容长度:120 内容类型:应用程序/ JSON 饼干:菜单-0 = 35;菜单-80 = 35; ASP.NET_SessionId = fj0txxxxx2j13extb25ksmfl0; 主持人:本地主机 起源:http://localhost 引用者:http://localhost/WebUI/System/Branch/Index User-Agent:Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 59.0.3071.115 Safari / 537.36 X-请求-随着:XMLHttpRequest的
检索记录列表的调用和更新调用之间是否存在固有的差异?我怀疑这可能是一件简单的事,我只是在忽视。