场景
在我的应用中,我使用HTML
解析到Razor.Parse<>().
的文本,链接和标签
string Razor.Parse<TEmail>(string razorTemplate, TEmail model) where TEmail : BaseEmail
我使用'@'
来解析model
中的数据。我还解析Web链接。直到我解析Google Map
链接,例如
问题 https://www.google.com/maps/place/New+York,+NY,+USA/@40.6974034,-74.1197634,11z/data=!3m1!4b1!4m5!3m4!1s0x89c24fa5d33f083b:0xc80b8f06e177fe62!8m2!3d40.7127753!4d-74.0059728 链接包括“ @ ”。所以我得到了错误:
RazorEngine.Templating.TemplateParsingException: '"40.6974034" is not valid at the start of a code block. Only identifiers, keywords, comments, "(" and "{" are valid.'
我的尝试
我尝试用dobule @@ 解析html https://www.google.com/maps/place/New+York,+NY,+USA/@@40.6974034,-74.1197634,11z/data=!3m1!4b1!4m5!3m4!1s0x89c24fa5d33f083b:0xc80b8f06e177fe62!8m2!3d40.7127753!4d-74.0059728 但是我得到了错误:
RazorEngine.Templating.TemplateParsingException: '"@" is not valid at the start of a code block. Only identifiers, keywords, comments, "(" and "{" are valid.'
任何想法我该怎么办?谢谢
答案 0 :(得分:1)
这是因为您试图传递无效的内容。当您使用“ @”关键字时,您不能传递值,您必须传递标识符,关键字,注释,“(”,“ {”。“ @”关键字标记代码块的开始,例如:
string value = Razor.Parse("@UserSession.NumberOfPeople")
上面的方法可以工作,但是:
string value = Razor.Parse("@http://www.something.com")
不起作用,这是无效的。
您需要做的是找到替代方法。 您需要使用razor engine。如果你不知道 阅读here。您无法保留 @ ,因为Razor.parse不会转义字符串。