Sharepoint使用列表Web服务插入新项目

时间:2012-02-20 11:08:24

标签: web-services sharepoint list sharepoint-2007

我正在使用sharepoint 2007。

我有一个名为“用户门票”的列表,其中一列名为“内容”

我的问题是我正在尝试插入以下文字:

<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接受此值:<script type=\"text/javascript\"> </script>

1 个答案:

答案 0 :(得分:1)

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

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

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