更新
请忽略这个问题,我完全被误解了,这个问题与我的想法没有任何关系,而是因为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?Page = 123&amp; Page = 180
所以我假设复合正在接受来自Action的URL结果的“?Page = 123”部分,然后尝试将其作为复合页面引用处理,当然它不是。
有谁知道如何解决这个问题?