0

有没有办法检测 HTML 页面是否包含任何 razor/C# 代码?本质上,我希望用户能够提供自定义布局,以及我将用 RenderSection 替换的标签。我想在进行此替换之前验证是否所有 HTML 都不包含任何内容,例如<a href="@(some C# code)".

所有关于替代方法的讨论,应该/可以/会放在一边,只是简单地说:有没有办法以编程方式检测文件是否包含 C#/Razor 代码?

4

3 回答 3

2

我对 Razor 标记了解不多——但我在想,当你获取他们传入的布局字符串时,你会想要解析文本并获取以 an 开头的所有内容@并将这些单词放入数组中. 然后,当您将其重新发布到您的网站时,使用剃须刀代码访问数组中的数据......

另一种更简单的方法是遍历所有传入的代码并用@不同的符号替换所有符号&,这样它就不会被 Razor 处理器解释:

layoutString = layoutString.Replace('@', '&');

于 2013-01-24T19:20:14.157 回答
0

在浏览器中?不,因为除非程序员犯了错误,否则呈现的 HTML 中没有 Razor/C# 代码,只有 HTML 是其结果。

你问的问题就像是问用什么类型的烤箱从披萨上烤披萨。坏消息——你永远不会知道。

如果您从中提供合理的标签,则可以在 javascript 中解析它们,但您必须自己输出该元数据作为生成的 html 的一部分。

于 2013-01-24T19:12:27.290 回答
0

阅读您对 TomTom 的评论后;答案是:

不,Razor 不附带任何公共语法解析器。

于 2013-01-24T19:22:31.873 回答