2012-02-20 47 views
1

我使用SharePoint 2007的Sharepoint插入使用列表Web服务

一个新的项目我有一个名为“用户门票”与所谓的“内容”一分栏列表

我的问题是,我试图插入以下文字:

<script type=\"text/javascript\"> </script> 

为了避免例外,我使用“的HTMLEncode”

不过时,SharePoint忽略这一点,只需插入空值到“内容”一栏。

我的代码:

ListsSoapClient _proxy = new ListsSoapClient(); 

string ContentValue = 
HttpContext.Current.Server.HtmlEncode("<script type=\"text/javascript\"> </script>"); 

XmlDocument doc = new XmlDocument(); 

XmlElement batchElement = doc.CreateElement("Batch"); 

batchElement.InnerXml = "<Method ID=\"1\" Cmd=\"New\"> <Field Name=\"Ticket_x0020_Details\">ContentValue </Field></Method>"; 

_proxy.UpdateListItems("User Tickets", UtilHelper.GetXElement(batchElement)); 

我怎样才能获得的SharePoint接受thisvalue:<script type=\"text/javascript\"> </script>

回答

1

SharePoint有某种用户内容过滤。这取决于您要插入的列。它的类型是什么?如果它是富文本,SharePoint将不允许插入脚本内容。

Upd:过滤脚本的想法很自然。想象一下,如果允许的话,当你打开“AllItems.aspx”视图并执行所有脚本时会发生什么。

你可以做什么,你可以对内容进行双重编码,这样在你的ContentValue字段中源代码中的<script>就变成了&amp;lt;script&amp;gt;。这样,您的脚本将以文本形式保存到列表项中。要将其作为脚本执行,您将始终需要致电HtmlDecode