Asp.net mvc ASP.NET MVC中的简单字符串模板

Asp.net mvc ASP.NET MVC中的简单字符串模板,asp.net-mvc,regex,string,templates,token,Asp.net Mvc,Regex,String,Templates,Token,我有一组数据库日志消息,其中包含诸如Invoice 45或Case 123之类的引用,我希望在向用户显示时解析这些消息,以输出指向相应发票或案例的链接 使用RegEx解析这些代码并使用ASCX显示模板替换为操作链接非常简单,但是有没有正确的方法呢?我想这意味着要编写一个解析器来标记字符串,并防止任何潜在的循环引用。HTML助手可能更合适——解析/显示不会做任何您可以放在ascx中的事情,而这些事情在代码中处理得不好 同意,但我不希望在每个显示模板中实例化一个新的RegEx对象。循环引用是否可能导

我有一组数据库日志消息,其中包含诸如
Invoice 45
Case 123
之类的引用,我希望在向用户显示时解析这些消息,以输出指向相应发票或案例的链接


使用RegEx解析这些代码并使用ASCX显示模板替换为操作链接非常简单,但是有没有正确的方法呢?我想这意味着要编写一个解析器来标记字符串,并防止任何潜在的循环引用。

HTML助手可能更合适——解析/显示不会做任何您可以放在ascx中的事情,而这些事情在代码中处理得不好

同意,但我不希望在每个显示模板中实例化一个新的RegEx对象。循环引用是否可能导致递归替换(又称灾难性递归)?我不太清楚递归的风险在哪里-它不只是返回多个匹配项的字符串上的一个简单正则表达式吗?你的例子中没有任何东西能让我联想到递归。此外,我不会担心实例化正则表达式的开销-如果需要,可以通过多种方式共享对象,但这并不重要,而且查找显示模板也会有相当大的开销。如果您担心每次调用帮助程序时单独实例化对象的开销,内联帮助程序可能有用-它编译为视图中的匿名方法,因此应该可以访问视图主要部分中设置的任何变量。@Tom,我一直在考虑支持更复杂的标记,这可能会导致潜在的危险字符串,但最后,我使用了简单的正则表达式匹配和替换。@Tom,感谢您提供有关使用内联帮助器的提示。外部静态助手会更好,不是吗?