0

更新

请忽略这个问题,我完全被误解了,这个问题与我认为的无关,而是因为 Composite 将它从函数呈现的所有 html 视为 XML,因此你必须逃避某些字符(这里有一个方便的参考: http: //www.faqs.org/docs/htmltut/characterentities_famsupp_69.html)。在我的情况下,我不得不替换&&.

希望此信息对其他人有所帮助。

另外,这里有一篇关于如何转义字符串的好文章:String escape into XML

我的老误解的问题:

我有一个无法通过 Composite 的 MvcPlayer 函数呈现的视图。通过消除过程,我能够将其追踪到视图中的以下行:

Url.Action("Action", "Controller", new { Page = 123, PageSize = 180 });

然后我更进一步发现,如果我将其更改为以下内容:

Url.Action("Action", "Controller", new { PageSize = 180 });

然后页面呈现没有问题。

我检查了复合错误日志,其中指出:

System.Xml.XmlException: '=' is an unexpected token. The expected token is ';'. Line 81, position 63.
  at System.Xml.XmlTextReaderImpl.Throw(Exception e)
  at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
  at System.Xml.XmlTextReaderImpl.ThrowUnexpectedToken(String expectedToken1, String expectedToken2)
  at System.Xml.XmlTextReaderImpl.ThrowUnexpectedToken(Int32 pos, String expectedToken1, String expectedToken2)
  at System.Xml.XmlTextReaderImpl.ThrowUnexpectedToken(Int32 pos, String expectedToken)
  at System.Xml.XmlTextReaderImpl.HandleEntityReference(Boolean isInAttributeValue, EntityExpandType expandType, Int32& charRefEndPos)
  at System.Xml.XmlTextReaderImpl.ParseAttributeValueSlow(Int32 curPos, Char quoteChar, NodeData attr)
  at System.Xml.XmlTextReaderImpl.ParseAttributes()
  at System.Xml.XmlTextReaderImpl.ParseElement()
  at System.Xml.XmlTextReaderImpl.ParseElementContent()
  at System.Xml.XmlTextReaderImpl.Read()
  at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r)
  at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r, LoadOptions o)
  at System.Xml.Linq.XDocument.Load(XmlReader reader, LoadOptions options)
  at System.Xml.Linq.XDocument.Parse(String text, LoadOptions options)
  at System.Xml.Linq.XDocument.Parse(String text)
  at Composite.AspNet.MvcPlayer.Functions.RenderInternal(String path) in c:\***************\MvcPlayer\Player.cs:line 125

我知道在 Composite 中,您可以像这样引用系统内的页面:

<a href="/page(@aPage.Data.Id)">Page</a>

我的 Url.Action 的输出是 /Controller/Action?Page=123&Page=180

所以我假设复合从动作中获取 URL 结果的“?Page = 123”部分,然后尝试将其作为复合页面引用处理,当然不是。

有谁知道我该如何解决这个问题?

4

0 回答 0