【问题标题】:Simple string templating in ASP.NET MVCASP.NET MVC 中的简单字符串模板
【发布时间】:2011-01-21 08:41:00
【问题描述】:

我有一堆数据库日志消息,其中包含 Invoice 45Case 123 之类的引用,我想在向用户显示时解析它们以输出指向相应发票或案例的链接。

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

【问题讨论】:

    标签: asp.net-mvc regex string templates token


    【解决方案1】:

    HTML 帮助器可能更适合 - 解析/显示不会做任何你可以放在 ascx 中但在代码中没有更好处理的事情。

    【讨论】:

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