2010-08-31 56 views
0

好,所以爲了提供數據融合圖表,我需要給它一些XML .. 我已經把範圍縮小到這個MVC 2的幫助與XML的諧音

myChart.setDataXML("<%Html.RenderPartial("Graph", Model.graph_data); %>"); 

這使得

myChart.setDataXML(" 
    <chart caption='Grafico' xAxisName='Factores' yAxisName='Porcentaje' decimals='0' formatNumberScale='0' numberSuffix='%25' yAxisMinValue='0' yAxisMaxValue='100' bgColor='FFFFFF' showBorder='1' bgSWF='/Content/images/LogoGraficas.png' slantLabels='1' labelDisplay='Rotate' baseFontColor='333333'> 

<set value='100' label='Pierna' /> 
     <styles> 
      <definition> 
       <style name='myShadow' type='Shadow' color='999999' angle='45'/> 
      </definition> 
      <application> 
       <apply toObject='DataValues' styles='myShadow' /> 
      </application> 
     </styles> 
    </chart>"); 

但我需要的渲染是..

myChart.setDataXML("<chart caption='Grafico' xAxisName='Factores' yAxisName='Porcentaje' decimals='0' formatNumberScale='0' numberSuffix='%25' yAxisMinValue='0' yAxisMaxValue='100' bgColor='FFFFFF' showBorder='1' bgSWF='/Content/images/LogoGraficas.png' slantLabels='1' labelDisplay='Rotate' baseFontColor='333333'><set value='100' label='Pierna' /><styles><definition><style name='myShadow' type='Shadow' color='999999' angle='45'/></definition><application><apply toObject='DataValues' styles='myShadow' /></application></styles></chart>"); 

我怎樣才能讓的RenderPartial給一點。b ack沒有空格的字符串?

+0

你能重新編輯第三代碼塊,請以便它縮進? – MrBliz 2010-08-31 15:47:59

+0

但是,這是必要的,否則它會返回一個JavaScript錯誤...第三個塊工作正常..第一個塊給我的JavaScript錯誤...他們沒有什麼不同,除了空間 – ignaciofuentes 2010-08-31 15:51:55

回答

0

您可以嘗試convert the PartialView output to a string然後按照您的意願操作它。

所以你最終會做的是這樣的。

string data = RenderPartialToString("~/..../..../..../Graph.ascx", Model.graph_data); 
data.Replace(System.Environment.NewLine, ""); 
myChart.setDataXML(data); 

我知道這不是最好的解決方案,但它可能會解決您的問題。

更新:

更好的方式來生成XML是使用:XmlWriterXmlSerializerXDocument

我不是XML專家,所以我不知道哪個是最適合你的情況但我喜歡XmlSerializer的作品。

看到一些例子Here