asp.net - 全局使用的公共静态函数

时间:2012-10-19 16:12:11

标签: asp.net

我是ASP.NET C#的新手。我尝试按照本教程页面使用全局功能,但没有运气。 http://aspnet.4guysfromrolla.com/articles/122403-1.aspx

我尝试做的是在我的代码中使用全局函数。我有一个名为“FormatDateNoTime”的函数。我在App_Code文件夹下创建了一个Class文件。但是当我在我的一个代码页面(例如Page1.aspx.cs)中调用该函数时,它给了我错误:

错误:当前上下文中不存在名称“MyClass”

App_Code文件夹下的MyClass.cs文件。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for Class1
/// </summary>
public class MyClass
{

        //
        // TODO: Add constructor logic here
        //

        public static string FormatDateNoTime(string input)            {
            string thedate;
            DateTime strDate = DateTime.Parse(input);
            thedate = strDate.ToString("MM/dd/yyyy");
            return thedate;
        }
}

我的Page1.aspx.cs中的代码调用了FormateNoTime函数

TextBox BeginDate = (TextBox)FormView1.FindControl("BeginDate");
BeginDate.Text = MyClass.FormatDateNoTime(objDs.Tables[0].Rows[0]["BeginDate"].ToString());

似乎其他页面无法识别此class.function()。

请帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:2)

右键单击App_Code中的源文件,并将其“Build Action”属性设置为“Compile”。单击App_Code中的.cs文件并点击 F4 键(或右键单击 - &gt;属性),您会看到“构建操作”的选项 这样,它将在App_Code文件夹中构建代码,您应该能够在类中访问静态方法。如果上面没有帮助,请从app_code中删除该类并将其放在根文件夹中并尝试编译它。

答案 1 :(得分:1)

您拥有的代码无法编译。我非常确定Visual Studio在您尝试运行它时会抛出错误;注意它的含义。

另外,请更改以下内容:

public static string FormatDateNoTime(object sender, EventArgs e)
{
    string thedate;
    DateTime strDate = DateTime.Parse(input);
    thedate = strDate.ToString("MM/dd/yyyy");
    return thedate;
}

public static string FormatDateNoTime(String input)
{
    string thedate;
    DateTime strDate = DateTime.Parse(input);
    thedate = strDate.ToString("MM/dd/yyyy");
    return thedate;
}

我会更进一步验证输入是否可以解析为DateTime,但这是供你探索的。