miércoles, 10 de junio de 2009

Tip del día: El uso del SPEncode.UrlDecode() en SharePoint

Me tope con el problema que necesitaba codificar el ID de una librería de documentos que es de tipo GUID y tiene le siguiente formato {NNNNNNNN-NNNN-NNNN-NNNNNNNN}.

Pero necesitaba pasarlo como parámetro en el URL con el siguiente formato: %7BNNNNNNNN%2DNNNN%2DNNNN%2DNNNN%2DNNNNNNNN%7D.

Al notar esto rápidamente identifiqué que estaba codificado de una forma especial, intenté con Context.Server.UrlEncode, pero me dejaba los guiones sin convertir ya que es un carácter válido... Investigando encontré que el API de SharePoint tiene una clase SPEncode para realizar este propósito. Entonces finalmente mi código quedo de la siguiente forma:

   1:      private string ObtenerListID() {


   2:              string id = null;


   3:              SPSecurity.RunWithElevatedPrivileges(delegate


   4:                 {


   5:                     using (var miWeb = SPControl.GetContextSite(Context).OpenWeb()) {


   6:                         id = miWeb.GetList(ObtenerNombreLista()).ID.ToString();


   7:                     }


   8:                 });


   9:              id = "{" + id + "}";


  10:              return SPEncode.UrlEncode(id);//Context.Server.UrlEncode(id);


  11:          }






Así que Code4Fun!,



Manolo Herrera

No hay comentarios.: