阶级和可接近性问题c#& asp.net

时间:2011-08-31 08:49:49

标签: c# asp.net

我有像

这样的小班
public static class TSM
{

    static string TokenID = "";

    public static string GetTSM()
    {
        TokenID = new Guid().ToString();
        return TokenID;
    }

}

`GetTokenID `will return a string

我只是从我的aspx页面调用GetTokenID,如

<script language="javascript" type="text/javascript">
    var token= <% =TSM.GetTSM() %>;

我正在运行那个aspx页面时遇到错误。

错误是

编译错误 描述:编译服务此请求所需的资源时发生错误。请查看以下特定错误详细信息并适当修改源代码。

编译器错误消息:CS1002 :;预期

请告诉我出了什么问题。感谢

1 个答案:

答案 0 :(得分:5)

您需要将声明此TSM类的命名空间放入Web页面的范围:

<%@ Import Namespace="SomeNamespace" %>
...
<script type="text/javascript">
    var token = '<%=TSM.GetTSM() %>';
</script>

或完全引用它:

<script type="text/javascript">
    var token = '<%= SomeNamespace.TSM.GetTSM() %>';
</script>

或将其包含在您的web.config的<namespaces>部分。

备注:请注意''周围的<%=TSM.GetTSM() %>,因为javascript中没有Guid类型。你必须使用一个字符串。

另请注意,由于此静态字段的分配,您的服务器端代码不是线程安全的。它也将始终生成一个空的guid。

以下是如何改进它:

public static class TSM
{
    public static string GetTSM()
    {
        return Guid.NewGuid().ToString();
    }
}