将常用函数移动到类并从HTML代码

时间:2017-10-24 00:34:01

标签: c# html class methods

我有一个用C#编写的函数,它驻留在ASPX应用程序的12个单独页面上。我已经在App_Code中使用了cs文件,所以这不是问题。

以下是HTML中的调用:

<asp:Image ID="Image1" runat ="server" ImageUrl='<%# (string) FormatImageUrl( (string) Eval("Image")) %>' /> 

以下是方法:

protected string FormatImageUrl(string url)
{
if (url != null && url.Length > 0)
    return ("~/" + url);
else return null;
}

(我可以添加一个很棒的发现。)

我想将此方法移至App_Code并从多个页面引用一个实例。

我已经考虑在HTML代码中添加namespace.function.method,但这会引发错误。

我也考虑过使用DLL作为方法,但我仍然不能 在HTML代码中正确引用它。

1 个答案:

答案 0 :(得分:1)

在过去的几天里,我花了一些时间参与智库模式,最后提出了解决方案。

我创建了一个名为ImageFormatter.cs的App_Code类文件,它看起来像这样:

/// <summary>
/// Summary description for ImageFormatter
/// </summary>
public class ImageFormatter
{
    public ImageFormatter()
    {
        //
        // TODO: Add constructor logic here
        //
    }

    public static string FormatImageUrl(string url)
    {
    if (url != null && url.Length > 0)
    return ("~/" + url);
    else return null;
}
}

注意:我删除了NameSpace definitioin和相关的{和}。

我在应用程序的两个页面中注释掉了FormatImageUrl函数来测试我的理论。

我在相同的两个文件中修改了HTML代码。

<asp:Image ID="Image1" runat ="server" ImageUrl='<%# (string) ImageFormatter.FormatImageUrl( (string) Eval("Image")) %>' /> 

所以对于那些需要将函数移动到类的人来说:

  • 创建一个合适名称的类
    • 将你的功能放在课堂上(正如我演示的那样)
    • 检查并删除NameSpace
  • 请务必在代码页中注释掉该功能
  • 修改HTML代码以包含类名称