包含带有“Page”参数的Url.Action时,复合C1 MvcPlayer渲染失败

时间:2013-03-26 15:12:05

标签: c1-cms

更新

请忽略这个问题,我完全被误解了,这个问题与我的想法没有任何关系,而是因为Composite将它从函数XML渲染的所有html处理,因此你有逃避某些角色(这是一个方便的参考:http://www.faqs.org/docs/htmltut/characterentities_famsupp_69.html)。就我而言,我必须将&替换为&

希望此信息可以帮助其他人。

此外,这是一篇关于如何逃避字符串的精彩文章:String escape into XML

我过去的错误观念:

我有一个View无法通过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?Pa​​ge = 123&amp; Page = 180

所以我假设复合正在接受来自Action的URL结果的“?Page = 123”部分,然后尝试将其作为复合页面引用处理,当然它不是。

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

0 个答案:

没有答案