繁体   English   中英

检测Razor / C#代码?

[英]Detect Razor/C# code?

有没有一种方法可以检测HTML页面是否包含任何razor / C#代码? 本质上,我希望用户能够提供自定义布局,并带有将被RenderSection替换的标签。 我想验证一下,在进行替换之前,没有HTML包含类似<a href="@(some C# code)"

所有关于替代方法的讨论都应该/可以/应该简单地抛在一边:是否有一种方法可以以编程方式检测文件是否包含C#/ Razor代码?

我对Razor标记了解不多-但我想当您抓取布局字符串时,他们想要传入的内容就是解析文本并抓取所有以@开头的单词,然后将这些单词扔进一个数组。 然后,当您将其重新发布到网站时,请使用剃刀代码访问数组中的数据...

或者,更容易地,是遍历所有传入的代码并将所有@符号替换为不同的符号say & ,这样它就不会被Razor处理器解释:

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

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

您所要问的就像是询问使用哪种类型的烤箱从比萨烤制比萨。 坏消息-您永远不会知道。

如果您从中提供明智的标签,则可以在javascript中对其进行解析,但是您必须自己输出该元数据作为生成的html的一部分。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM