2012-02-20 15 views
1

を使用して、新しい項目次のテキストを挿入しようとしている:Sharepointの挿入リストのWebサービス

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

は、私が「HtmlEncode」

を使用し、例外を避けるために。しかし、SharePointがこれを無視して、単に「コンテンツ」列に空白値を挿入します。

マイコード:<script type=\"text/javascript\"> </script>

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を受け入れることを得ることができますか?

答えて

1

SharePointには、何らかのユーザーコンテンツフィルタリングがあります。挿入する列によって異なります。そのタイプは何ですか?リッチテキストの場合、SharePointはスクリプトコンテンツの挿入を許可しません。

更新:スクリプトをフィルタリングする考えは、とても自然です。あなたが "AllItems.aspx"ビューを開いてすべてのスクリプトが実行されたときに何が起こるかを想像してみてください。

あなたができることは、ソースコードの<script>ContentValueフィールドの&amp;lt;script&amp;gt;になるように、内容を二重にエンコードできるかどうかです。これにより、スクリプトはリスト項目にテキストとして保存されます。スクリプトとして実行するには、常にHtmlDecodeに電話する必要があります。