1
이 웹 메서드가있는 SharePoint 레이아웃 페이지가 있습니다.웹 메서드 호출시 SPContext가 null입니다.
[WebMethod(EnableSession = false)]
[ScriptMethod]
public static List<ItemData> GetItems(string SearchTerm)
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(SPContext.Current.Web.Url))
{
using (SPWeb web = site.RootWeb)
{
SPList list = web.Lists.TryGetList("Data");
_documentListId = list.ID;
}
}
});
}
나는 아래의 코드
$.ajax({
type: "POST",
url: "multispr.aspx/GetItems",
data: JSON.stringify({ SearchTerm: $('#SearchTerm').val() }),
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
success: function (data, status) {
self.Items(data.d);
myApp.hidePleaseWait();
},
failure: function (data) {
alert(data.d);
},
error: function (data) {
alert(data.d);
}
});
문제는 웹 방법이 아약스 코드를 호출 할 때 SPContext가 null을오고 있다는 것입니다이 웹 메소드를 호출합니다. SPContext에 중단 점을 넣은 다음 값이 어떤 식 으로든 그 값을 가져 와서 채 웁니다. 중단 점이 없으면 채 웁니다.
누군가이 문제를 해결하는 데 도움을 줄 수 있습니까?
감사
'RunWithElevatedPrivilegs'를 사용하면 실제로 컨텍스트가 만들어 지므로 현재 컨텍스트가 호출 내에서 유효하지 않게됩니다 – Verthosa