在aspx页怎么引用自己写的类?进来帮看看啊

时间:2022-08-25 14:53:36
我在app_code文件夹中写了一个类,在aspx页怎么无法调用,提示:编译器错误消息: CS0103: 当前上下文中不存在名称“Link”,类代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WebApplication1.App_Code
{
    /// <summary>
    /// 连接工厂类
    /// </summary>
    public class Link
    {
        //构建绝对URL
        private static string BuildAbsolute(string relativeUri)
        { 
        //获取当前URL
            Uri uri = HttpContext.Current.Request.Url;
            //构建绝对路径
            string app = HttpContext.Current.Request.ApplicationPath;
            if (!app.EndsWith("/"))
            {
                app += "/";
            }
            relativeUri = relativeUri.TrimStart('/');
            //返回绝对路径
            return HttpUtility.UrlPathEncode(string.Format("http://{0}:{1}{2}{3}",uri.Host,uri.Port,app,relativeUri));
        }
        //生成一个门类url
        public static string ToDepartment(string departmentId, string page)
        {
            if (page=="1")
            {
                return BuildAbsolute(string.Format("Catalog.aspx?DepartmentId={0}",departmentId));
            }
            else
            {
                return BuildAbsolute(string.Format("Catalog.aspx?DepartmentId={0}&Page={1}",departmentId,page));
            }
        }
        //为首页生成一个门类URL
        public static string ToDepartment(string departmentId)
        {
            return ToDepartment(departmentId,"1");
        }
    }
}

aspx页代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:DataList ID="List" runat="server" CssClass="DepartmentList" Width="200px">
    <HeaderStyle CssClass="DepartmentListHead" />
    <HeaderTemplate>
        选择一个
    </HeaderTemplate>
    <ItemTemplate>
        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Link.ToDepartment(Eval("DepartmentID").ToString())%>' Text='<%# HttpUtility.HtmlEncode(Eval("Name").ToString()) %>' ToolTip='<%# HttpUtility.HtmlEncode(Eval("Description").ToString()) %>' CssClass='<%# Eval("DepartmentID").ToString()==Request.QueryString["DepartmentID"]?"DepartmentSelected" :"DepartmentUnselected" %>'></asp:HyperLink>
    </ItemTemplate>
</asp:DataList>
    </div>
    </form>
</body>
</html>

26 个解决方案

#1


<ItemTemplate>
        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Link.ToDepartment(Eval("DepartmentID").ToString())%>' Text='<%# HttpUtility.HtmlEncode(Eval("Name").ToString()) %>' ToolTip='<%# HttpUtility.HtmlEncode(Eval("Description").ToString()) %>' CssClass='<%# Eval("DepartmentID").ToString()==Request.QueryString["DepartmentID"]?"DepartmentSelected" :"DepartmentUnselected" %>'></asp:HyperLink>
    </ItemTemplate>
------------------------------------
这块可以调用 本页面的.cs 方法,在.cs方法内再去调用Link里面的方法

#2


是不是少了这个
using  WebApplication1.App_Code;

#3


引用 1 楼  的回复:
<ItemTemplate>
        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Link.ToDepartment(Eval("DepartmentID").ToString())%>' Text='<%# HttpUtility.HtmlEncode(Eval("Name").ToString()) ……

不能直接在aspx页面里调用吗?

#4


引用 2 楼  的回复:
是不是少了这个
using  WebApplication1.App_Code;

在aspx页面哪有using啊!在.cs页里面using WebApplication1.App_Code也没用

#5


<%@ Import Namespace="WebApplication1.App_Code" %>

#6


导入命名空间 
比如:

<%@Import Namespace="System.Data"%>

#7


引用 5 楼  的回复:
<%@ Import Namespace="WebApplication1.App_Code" %>

提示:编译错误 
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 

编译器错误消息: CS0433: 类型“WebApplication1.App_Code.Link”同时存在于“c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\f6649fe3\d67dc036\assembly\dl3\a70e0df6\c685d757_485ecd01\WebApplication1.DLL”和“c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\f6649fe3\d67dc036\App_Code.fofuy6ea.dll”中

#8


但是咋们一般不这么写吧 难道不能直接在后台里面直接处理掉?

#9


重新编译一次  或者把命名空间改个名字
引用 7 楼  的回复:
引用 5 楼  的回复:

<%@ Import Namespace="WebApplication1.App_Code" %>

提示:编译错误 
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 

编译器错误消息: CS0433: 类型“WebApplication1.App_Code.Link”同时存在于“c:\Wind……

#10


引用 9 楼  的回复:
重新编译一次  或者把命名空间改个名字
引用 7 楼  的回复:

引用 5 楼  的回复:

<%@ Import Namespace="WebApplication1.App_Code" %>

提示:编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误消息: CS0433: 类型“WebAppli……

命名空间改成WebApplication2.App_Code也是一样的

#11


引用 8 楼  的回复:
但是咋们一般不这么写吧 难道不能直接在后台里面直接处理掉?

这个。。可以但比较麻烦一点

#12


我说不用App_Code  改成App_Code2试试
引用 10 楼  的回复:
引用 9 楼  的回复:

重新编译一次  或者把命名空间改个名字
引用 7 楼  的回复:

引用 5 楼  的回复:

<%@ Import Namespace="WebApplication1.App_Code" %>

提示:编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误消息: CS0……

#13


引用 1 楼  的回复:
在aspx页面哪有using啊!在.cs页里面using WebApplication1.App_Code也没用


看看你新建的那个类文件的属性,生成操作是不是编译,默认放在App_Code里的代码是不编译的。

#14


先看看你的App_Code里的类的命名空间,然后在aspx页面后台引用一下试试吧!

#15


引用 12 楼  的回复:
我说不用App_Code  改成App_Code2试试
引用 10 楼  的回复:

引用 9 楼  的回复:

重新编译一次  或者把命名空间改个名字
引用 7 楼  的回复:

引用 5 楼  的回复:

<%@ Import Namespace="WebApplication1.App_Code" %>

提示:编译错误
说明: 在编译向该请求提供服务所需资源的过……

发现不用app_code文件夹就可以,这怎么回事?!

#16


没遇过你这种情况 app_code会被编译成一个app_code.dll的
引用 15 楼  的回复:
引用 12 楼  的回复:

我说不用App_Code  改成App_Code2试试
引用 10 楼  的回复:

引用 9 楼  的回复:

重新编译一次  或者把命名空间改个名字
引用 7 楼  的回复:

引用 5 楼  的回复:

<%@ Import Namespace="WebApplication1.App_Code" %>

提示:编译错误
说明: ……

#17


引用 13 楼  的回复:
引用 1 楼  的回复:

在aspx页面哪有using啊!在.cs页里面using WebApplication1.App_Code也没用



看看你新建的那个类文件的属性,生成操作是不是编译,默认放在App_Code里的代码是不编译的。

是编译的

#18


引用 17 楼  的回复:
引用 13 楼  的回复:

引用 1 楼  的回复:

在aspx页面哪有using啊!在.cs页里面using WebApplication1.App_Code也没用



看看你新建的那个类文件的属性,生成操作是不是编译,默认放在App_Code里的代码是不编译的。

是编译的


那绝对是你看错了,默认生成操作是内容。
这就是为什么放App_Code里引用不到的原因,改成编译就可以。

在aspx页怎么引用自己写的类?进来帮看看啊

#19


可以尝试查看app_code文件夹的支持项目类型列表,就我所知WEb应用程序不支持(很多限制)。一般在项目上无法从ASPNET文件夹中找到该项,就不要瞎折腾自己去加了。

类库你随便放个地方都可以,反正根据命名空间引用...

#20


引用 18 楼  的回复:
引用 17 楼  的回复:

引用 13 楼  的回复:

引用 1 楼  的回复:

在aspx页面哪有using啊!在.cs页里面using WebApplication1.App_Code也没用



看看你新建的那个类文件的属性,生成操作是不是编译,默认放在App_Code里的代码是不编译的。

是编译的


那绝对是你看错了,默认生成操作是内容。
这就是……

默认生成操作是内容,但我已经改过了

#21


引用 19 楼  的回复:
可以尝试查看app_code文件夹的支持项目类型列表,就我所知WEb应用程序不支持(很多限制)。一般在项目上无法从ASPNET文件夹中找到该项,就不要瞎折腾自己去加了。

类库你随便放个地方都可以,反正根据命名空间引用...

哦,那会不会有安全方面的问题存在?

#22


问题解决了,谢谢大家的热情帮忙。

#23


该回复于2012-07-10 15:47:31被版主删除

#24


藐视是 解决方案有问题啊! 是不是不是web 的解决方案啊! 新建一个web网站的试试看!

#25


引用 22 楼  的回复:
问题解决了,谢谢大家的热情帮忙。

是怎么解决的 我也遇到这样的问题了 查了很久不知道怎么回事 

#26


引用 25 楼  的回复:
引用 22 楼  的回复:

问题解决了,谢谢大家的热情帮忙。

是怎么解决的 我也遇到这样的问题了 查了很久不知道怎么回事

类不要放在app_code文件夹就好了

#1


<ItemTemplate>
        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Link.ToDepartment(Eval("DepartmentID").ToString())%>' Text='<%# HttpUtility.HtmlEncode(Eval("Name").ToString()) %>' ToolTip='<%# HttpUtility.HtmlEncode(Eval("Description").ToString()) %>' CssClass='<%# Eval("DepartmentID").ToString()==Request.QueryString["DepartmentID"]?"DepartmentSelected" :"DepartmentUnselected" %>'></asp:HyperLink>
    </ItemTemplate>
------------------------------------
这块可以调用 本页面的.cs 方法,在.cs方法内再去调用Link里面的方法

#2


是不是少了这个
using  WebApplication1.App_Code;

#3


引用 1 楼  的回复:
<ItemTemplate>
        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Link.ToDepartment(Eval("DepartmentID").ToString())%>' Text='<%# HttpUtility.HtmlEncode(Eval("Name").ToString()) ……

不能直接在aspx页面里调用吗?

#4


引用 2 楼  的回复:
是不是少了这个
using  WebApplication1.App_Code;

在aspx页面哪有using啊!在.cs页里面using WebApplication1.App_Code也没用

#5


<%@ Import Namespace="WebApplication1.App_Code" %>

#6


导入命名空间 
比如:

<%@Import Namespace="System.Data"%>

#7


引用 5 楼  的回复:
<%@ Import Namespace="WebApplication1.App_Code" %>

提示:编译错误 
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 

编译器错误消息: CS0433: 类型“WebApplication1.App_Code.Link”同时存在于“c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\f6649fe3\d67dc036\assembly\dl3\a70e0df6\c685d757_485ecd01\WebApplication1.DLL”和“c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\f6649fe3\d67dc036\App_Code.fofuy6ea.dll”中

#8


但是咋们一般不这么写吧 难道不能直接在后台里面直接处理掉?

#9


重新编译一次  或者把命名空间改个名字
引用 7 楼  的回复:
引用 5 楼  的回复:

<%@ Import Namespace="WebApplication1.App_Code" %>

提示:编译错误 
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 

编译器错误消息: CS0433: 类型“WebApplication1.App_Code.Link”同时存在于“c:\Wind……

#10


引用 9 楼  的回复:
重新编译一次  或者把命名空间改个名字
引用 7 楼  的回复:

引用 5 楼  的回复:

<%@ Import Namespace="WebApplication1.App_Code" %>

提示:编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误消息: CS0433: 类型“WebAppli……

命名空间改成WebApplication2.App_Code也是一样的

#11


引用 8 楼  的回复:
但是咋们一般不这么写吧 难道不能直接在后台里面直接处理掉?

这个。。可以但比较麻烦一点

#12


我说不用App_Code  改成App_Code2试试
引用 10 楼  的回复:
引用 9 楼  的回复:

重新编译一次  或者把命名空间改个名字
引用 7 楼  的回复:

引用 5 楼  的回复:

<%@ Import Namespace="WebApplication1.App_Code" %>

提示:编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误消息: CS0……

#13


引用 1 楼  的回复:
在aspx页面哪有using啊!在.cs页里面using WebApplication1.App_Code也没用


看看你新建的那个类文件的属性,生成操作是不是编译,默认放在App_Code里的代码是不编译的。

#14


先看看你的App_Code里的类的命名空间,然后在aspx页面后台引用一下试试吧!

#15


引用 12 楼  的回复:
我说不用App_Code  改成App_Code2试试
引用 10 楼  的回复:

引用 9 楼  的回复:

重新编译一次  或者把命名空间改个名字
引用 7 楼  的回复:

引用 5 楼  的回复:

<%@ Import Namespace="WebApplication1.App_Code" %>

提示:编译错误
说明: 在编译向该请求提供服务所需资源的过……

发现不用app_code文件夹就可以,这怎么回事?!

#16


没遇过你这种情况 app_code会被编译成一个app_code.dll的
引用 15 楼  的回复:
引用 12 楼  的回复:

我说不用App_Code  改成App_Code2试试
引用 10 楼  的回复:

引用 9 楼  的回复:

重新编译一次  或者把命名空间改个名字
引用 7 楼  的回复:

引用 5 楼  的回复:

<%@ Import Namespace="WebApplication1.App_Code" %>

提示:编译错误
说明: ……

#17


引用 13 楼  的回复:
引用 1 楼  的回复:

在aspx页面哪有using啊!在.cs页里面using WebApplication1.App_Code也没用



看看你新建的那个类文件的属性,生成操作是不是编译,默认放在App_Code里的代码是不编译的。

是编译的

#18


引用 17 楼  的回复:
引用 13 楼  的回复:

引用 1 楼  的回复:

在aspx页面哪有using啊!在.cs页里面using WebApplication1.App_Code也没用



看看你新建的那个类文件的属性,生成操作是不是编译,默认放在App_Code里的代码是不编译的。

是编译的


那绝对是你看错了,默认生成操作是内容。
这就是为什么放App_Code里引用不到的原因,改成编译就可以。

在aspx页怎么引用自己写的类?进来帮看看啊

#19


可以尝试查看app_code文件夹的支持项目类型列表,就我所知WEb应用程序不支持(很多限制)。一般在项目上无法从ASPNET文件夹中找到该项,就不要瞎折腾自己去加了。

类库你随便放个地方都可以,反正根据命名空间引用...

#20


引用 18 楼  的回复:
引用 17 楼  的回复:

引用 13 楼  的回复:

引用 1 楼  的回复:

在aspx页面哪有using啊!在.cs页里面using WebApplication1.App_Code也没用



看看你新建的那个类文件的属性,生成操作是不是编译,默认放在App_Code里的代码是不编译的。

是编译的


那绝对是你看错了,默认生成操作是内容。
这就是……

默认生成操作是内容,但我已经改过了

#21


引用 19 楼  的回复:
可以尝试查看app_code文件夹的支持项目类型列表,就我所知WEb应用程序不支持(很多限制)。一般在项目上无法从ASPNET文件夹中找到该项,就不要瞎折腾自己去加了。

类库你随便放个地方都可以,反正根据命名空间引用...

哦,那会不会有安全方面的问题存在?

#22


问题解决了,谢谢大家的热情帮忙。

#23


该回复于2012-07-10 15:47:31被版主删除

#24


藐视是 解决方案有问题啊! 是不是不是web 的解决方案啊! 新建一个web网站的试试看!

#25


引用 22 楼  的回复:
问题解决了,谢谢大家的热情帮忙。

是怎么解决的 我也遇到这样的问题了 查了很久不知道怎么回事 

#26


引用 25 楼  的回复:
引用 22 楼  的回复:

问题解决了,谢谢大家的热情帮忙。

是怎么解决的 我也遇到这样的问题了 查了很久不知道怎么回事

类不要放在app_code文件夹就好了