代码之家  ›  专栏  ›  技术社区  ›  Brandon

在资源文件中处理服务器端代码和HTML的混合?

  •  1
  • Brandon  · 技术社区  · 15 年前

    我正在尝试将ASP.NET Web应用程序转换为使用资源文件。我以前没有使用过资源文件,所以我只是在玩弄它们,想知道这是否可行。

    我有一条消息,当找不到结果时从搜索返回,提示用户返回主页。很多页面都有方法来确定将用户发送到哪个页面,因此有许多带有类似标记的部分:

    抱歉,我们找不到商品 匹配您的搜索条件。

    请调整搜索条件或 <a href="<%= SomeMethodToDetermineUri() %>"> 返回 到(网页) </a> .

    所以基本上,是某种类型的消息,后面跟着一个链接或者一个链接列表。获取消息部分工作正常,问题在于生成链接的服务器端代码。

    将其放入资源文件的最佳方法是什么?它能够很好地识别HTML链接部分,但是服务器端代码被插入为纯文本。

    唯一的办法是把它分成两个资源吗?(看起来很乱)

    <%= Resources.Master.NoSearchResultsFound %>
    <a href="<%= SomeMethodToDetermineUri() %>"> 
       <%= Resources.Master.NoSearchResultsFoundReturnLinkText %>
    </a>.
    

    或者有没有一种方法可以让页面评估服务器代码?

    3 回复  |  直到 15 年前
        1
  •  1
  •   Ben Hoffman    15 年前

    如果您的站点上有类似的功能,我建议您使用用户控件或母版页来处理您尝试执行的操作。我相信资源更多地用于项目之外的文件。

        2
  •  1
  •   John Saunders    15 年前

    您不想将任何类型的代码放入资源文件中。你的解决方案是正确的,即使你觉得很混乱。

    您唯一能做的另一件事是将它封装在用户控件中。用户控件将获取资源,从而隐藏页面中的混乱。

        3
  •  1
  •   Brandon    15 年前

    啊,我忘了我的老朋友了 String.Format

    <%= String.Format(Resources.Master.NoSearchResultsFound, SomeMethodToDetermineUri() %>
    

    工作得很好。

    那么资源文件中的值只是

    抱歉,我们找不到符合您搜索条件的项目。

    请调整搜索条件或 <a href="{0}">return to (SomePage)</a> .