ASP.net路径问题详解

 2024-02-10 02:02:55  阅读 0

例如,您的项目是(url是:)

。 那是/

如果是站点,则直接返回“/”;

-------------------------------------------------- ----

~/可用于需要设置路径的控件,如:、image等以及链接ascx文件和配置文件。

../的优点是不需要知道文件夹的名称,只需要知道层次结构即可。

/ 的优点是它针对根路径。 如果本地目录和服务器目录一致,那么直接使用/可以保证路径正确。 这种情况很少见。

。 注意,如果没有虚拟目录,则直接返回/。 那么不要在你的程序中设置 / 。

例如

.+"//a.gif" 如果是网站就等于"///a.gif",这是错误的。

如果有虚拟目录,则为“//a.gif”

。 播放虚拟目录名,如果是站点则返回/

~/类似,但只能使用服务器端的空格来识别;

/ 用于目录

。/ 不知道

../ 相对于当前目录的上层目录

例如,您的项目是(url是:)

。 那是/

〜/也/

/那是

如果.aspx下有.aspx文件

您可以在 .aspx 中像这样使用它

滴滴

或者

或者

ASP.NET 网站路径

使用网站资源时,通常必须指定资源的路径。 例如,您可以使用 URL 路径来引用页面中的图像文件或站点中其他位置的页面的 URL。 同样,Web 应用程序中的代码可以使用基于服务器的文件的物理文件路径读取和写入文件。 ASP.NET 提供了引用资源和确定应用程序中页面或其他资源的路径的方法。

指定资源的路径

在许多情况下,页面上的元素或控件必须引用外部资源,例如文件。 ASP.NET 支持多种引用外部资源的方法。 根据您使用的是客户端元素还是 Web 服务器控件,您选择的引用方法会有所不同。

客户元素

客户端元素是页面上按原样传递到浏览器的非 Web 服务器控制元素。 因此,当从客户端元素引用资源时,应根据 HTML 中 URL 的标准规则构建路径。 您可以使用完全限定的 URL 路径(也称为绝对 URL 路径)或各种类型的相对路径。 例如,如果页面包含 img 元素,您可以使用以下路径之一设置其 src 属性:

绝对 URL 路径。 如果您引用其他位置(例如外部网站)的资源,绝对 URL 路径非常有用。

相对于网站根目录的路径,该路径将根据网站根目录(而不是应用程序根目录)进行解析。 如果您将跨应用程序资源(例如图像或客户端脚本文件)保存在网站根目录下的文件夹中,则网站根目录相对路径非常有用。

此示例路径假设该文件夹位于网站根目录中。

如果您的网站是 ,则此路径将解析为以下形式。

下面是根据当前页面路径解析出的相对路径。

解析为与当前页面路径等效的相对路径。

注意

默认情况下,浏览器使用当前页面的 URL 作为解析相对路径的基础。 但是,您可以在页面中包含 HTML 基本元素来指定备用基本路径。

服务器控制

在引用资源的 ASP.NET 服务器控件中,可以使用绝对路径或相对路径,就像客户端元素一样。 如果使用相对路径,则分辨率相对于页面、用户控件或包含该控件的主题的路径。 例如,假设该文件夹包含一个用户控件。 用户控件包含一个图像 Web 服务器控件,其属性设置为以下路径:/.jpg。

当用户控件运行时,上述路径将解析为以下形式:///.jpg。 无论托管用户控件的页面如何,结果都是相同的。

注意

在主控页面中,根据内容页的路径来解析资源的路径。 有关详细信息,请参阅 ASP.NET 母版页概述。

服务器控件中的绝对和相对路径引用具有以下缺点:

绝对路径在应用程序之间不可移植。 如果移动绝对路径指向的应用程序,链接将会中断。

如果将资源或页面移动到不同的文件夹,则可能很难维护客户端元素样式中的相对路径。

为了克服这些缺点,ASP.NET 包含了 Web 应用程序根运算符 (~),您可以在服务器控件中指定路径时使用它。 ASP.NET 将 ~ 运算符解析为当前应用程序的根目录。 您可以将 ~ 运算符与文件夹一起使用来指定基于当前根目录的路径。

以下示例演示了 ~ 运算符,用于在使用图像服务器控件时指定图像的根相对路径。 在此示例中,无论页面位于网站中的哪个位置,都将直接从位于 Web 应用程序根目录的文件夹中读取图像文件。

="~//.jpg" />您可以在服务器控件中的任何与路径相关的属性中使用 ~ 运算符。 ~ 运算符仅由服务器控件识别,并且位于服务器代码中。 您不能将 ~ 运算符与客户端元素一起使用。

注意

仅移动页面,如果您的应用程序依赖于无会话或可能从需要无会话的移动设备接收请求,则在路径中使用波形符(“~”)将导致意外创建新会话并可能丢失会话数据。 要使用包含波形符的路径(例如“~/path”)设置移动控件的属性,请在将路径分配给属性之前使用方法解析该路径。

确定当前网站的物理文件路径

在您的应用程序中,您可能需要确定服务器上文件或其他资源的路径。 例如,如果您的应用程序以编程方式读取和写入文本文件,则必须向用于读取和写入的方法提供该文件的完整物理路径。

将物理文件路径(例如 C:)硬编码到应用程序中并不是一个好的做法,因为如果移动或部署应用程序,这些路径将会更改。 然而,ASP.NET 为您提供了一种以编程方式获取应用程序中任何物理文件的路径的方法。 然后,您可以使用基本文件路径创建所需资源的完整路径。 用于确定文件路径的两个最常用的 ASP.NET 函数是返回路径信息的对象的属性和方法。

注意

不应将物理文件路径发送到客户端,因为恶意用户可以使用它们来获取有关您的应用程序的信息。

根据请求属性确定路径

例如,如果我们要获取日期类型的数据,则数据库中的列名是2008/06/01。 但如果我们想这样显示2008年6月1日,我们可以这样写Bind("", "{0:yyyy 年MM月dd日}"),Eval也是如此。

两者都可以读取数据中的值并显示出来。 当我们使用编辑更新操作时,Bind可以自动将修改的值更新到数据库中并显示修改的值。 但是,当使用Eval时,我只能得到一个错误屏幕,并且新数据没有在数据库中更新。

从这一点来看,Bind方法和Eval方法的区别在于Bind方法可以读取和更新数据,而Eval方法只能读取显示数据。 因此,我们在选择Bind方法和Eval方法时一定要保持一致。 当数据确实需要更新时,我们应该使用Bind。 如果只是显示数据,不会有任何操作,我们可以使用Eval方法。

在更新操作中,我们可以在g事件中进行操作。 示例如下:

复制代码代码如下:

无效 g( , rgs e)

//更新行

行 = this..Rows[e.];

//查找更新的控件

= ()行。("");

价格=()行。(“”);

= ()行。("");

//更新

e.[""] = .;

e.["价格"] = 价格.Text;

e.[""] = .Text;

无效 g( , rgs e)

//更新行

行 = this..Rows[e.];

//查找更新的控件

= ()行。("");

价格=()行。(“”);

= ()行。("");

//更新

e.[""] = .;

e.["价格"] = 价格.Text;

e.[""] = .Text;

如果我们能够充分理解Bind方法和Eval方法,其实就没有必要像上面那样写了,它们都可以自动完成。 上面的方法只有在比较复杂的操作之外才会用到。 这也是一种使用技巧。

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码