Holen Sie sich die aktuelle Liste/Bibliothek von HTTP -Handler
-
16-10-2019 - |
Frage
Ich versuche, einen HTTP -Handler zu schreiben, um RSS XML zu generieren (basierend auf dem CKS -Code).
Ich möchte in der Lage sein, die Liste/Bibliothek zu erhalten, auf die sich der Endpunkt der URL bezieht.
Zum Beispiel, wenn meine URL ist:
Ich möchte in der Lage sein, die Seitenbibliothek des Web -Veröffentlichungsnetzes zu erhalten.
Nebenbei bemerkt, wenn ich das auf die falsche Weise vorbereite, lassen Sie es mich bitte wissen.
Update 1
Es kann für mich einfacher sein, meinen Code zu zeigen (für die Behinderung).
public void ProcessRequest(HttpContext context)
{
try
{
SPList list = SPContext.Current.Web.GetListFromUrl(context.Request.Path);
}
catch (Exception ex)
{
context.Response.Write("Error getting list from spcontext.current.web.GetListFromUrl: " + ex.Message + "<br />");
}
try
{
SPList list = SPContext.Current.List;
context.Response.Write("List title: " + list.Title.ToString() + "<br />");
}
catch (Exception ex)
{
context.Response.Write("Error getting list from spcontext.current.list: " + ex.Message + "<br />");
}
try
{
context.Response.Write("List Title from SPConext: " + SPContext.Current.List.Title.ToString());
}
catch (Exception ex)
{
context.Response.Write("Error getting list from spcontext.current.list.title.tostring: " + ex.Message + "<br />");
}
}
Die angezeigten Fehlermeldungen sind ...
- Fehlerliste von spcontext.current.web.getListfromurl: Diese Aktion kann nicht ausfüllen. Bitte versuche es erneut.
- Fehlerliste von spcontext.current.List: Objektreferenz nicht auf eine Instanz eines Objekts festgelegt.
- Fehlerliste von spcontext.current.list.title.toString: Objektreferenz nicht auf eine Instanz eines Objekts festgelegt.
Lösung 2
Ich habe es geschafft, den Listennamen durch String Manipulation zu erhalten.
Andere Tipps
Sie haben Zugriff auf Spcontext innerhalb eines HTTP -Handlers, daher sollten Sie in der Lage sein, zu verwenden:
SPContext.Current.List
Wenn aus irgendeinem Grund das kippen Seien Sie verwendet, dies sollte Sie dorthin bringen:
SPContext.Current.Web.GetListFromUrl()