希望我能够正确解释这一点。
我有一个sharepoint 2013页面,我使用Marionette作为视图,以及使用MVC5和EF6的web api。
当您第一次访问该网站时,您将获得4个选项,每个选项都会进入不同的视图。在这种情况下,我将进入一个允许我搜索律师的视图。视图加载(我不会开始提取任何数据,因此只需使用搜索栏和搜索按钮以及其他几个按钮加载),然后我就可以进行搜索了。
我输入搜索条件,然后点击搜索按钮。 click事件适当触发,我的ajax调用被触发。下面的代码是我的ajax调用,它包含在我的视图使用的集合中。一旦我获得成功返回,它应该加载数据,然后我可以浏览它。相反发生的事情是我可以看到调用返回成功并且数据被加载到视图中,然后突然它返回到我的主视图,其具有我之前描述的4个选项。我知道这是有效的,因为我在sharepoint 2013之外尝试了相同的代码,并且路由正常工作。 Sharepoint 2013是否有关于骨干/木偶路由的不感兴趣?在Chrome中查看调试器时,我没有收到任何错误,所以我不确定发生了什么。我已尝试过其他视图,其按钮点击次数与此方案类似,但它们都做同样的事情。
至于我如何将这个放入Sharepoint我恢复了默认生成的default.aspx并将我的html代码转储到其中。然后我设置了对我需要的js的适当引用。其他一切似乎都在工作,因为我已经能够成功地通过webapi调用从我的sharepoint页面保存数据。
OcrtApplication.OcAttorneyCollection = Backbone.Collection.extend({
model: OcrtApplication.OCAttorney,
url: 'http://apiserver/OCAttorney',
pageData: function (key, value, pageNum, perPage) {
var self = this;
var result = function (self, key, value, pageNum, perPage) {
$.ajax({
url: 'http://apisurver/ocattorney/' + key + '/' + value + '/' + pageNum + '/' + perPage,
type: 'GET',
contentType: "application/json",
crossDomain:true,
success: function (result) {
//alert(result);
self.reset(result);
}
});
}
result(self,key,value, pageNum, perPage );
}
});
答案 0 :(得分:1)
好的,所以我发现了发生了什么。下面的堆栈溢出问题解决了我的问题。总结一下简短而又甜蜜的Sharepoint 2013会将按钮元素视为围绕页面的表单的输入。所以在我的情况下,default.aspx页面里面有我的html,但是它的主页面包含一个表单,所以当我点击任何按钮时,表单都在提交 类型=“按钮” 希望这会对其他人有所帮助。