ASP.NET 用虚拟路径代替参数

.NET物理路径,虚拟路径,物理路径与虚拟路径转换,文件下载方法 有时候报错:是物理路径,但应为虚拟路径。 1 什么是物理路径?什么是虚拟路径? (1) 例子: 用IIS举个例子: WEB服务目录是d:\路径 那么用HTTP访问网站根目录的时候,其实访问的是d:\路径,那么其中虚拟路径就是\(根),物理路径就是d:\路径 (2) 我自己的理解:绝对路径一般都是带有磁盘完成路径, 而虚拟路径一般不带有磁盘 2 程序中虚拟路径和物理路径的转化 #region 物理路径和相对路径的转换 //本地路径转换成URL相对路径 private s... 阅读详情

ASP.NET 用虚拟路径代替参数。这种技术其实并不是网页本身需要的,用querystring的效果其实是完全一样的。那我们费那个劲干什么呢?一句话,为了Google。

留心过有关Google文章的朋友都知道一点,静态地址的网页在Google里总是优先于带Querystring参数的。原理上讲,Google觉得那样的网页是经常变化的,查询结果的有效性比较差,可能一会儿就变化了。一般意思上的次序这样的:

http://www.msn.com/index.htm > http://www.msn.com/index.aspx > http://www.msn.com/index.aspx?id=1

所以就有了虚拟路径来替代参数这一说,好让自己的排名在Google里提前。看看我们CSDN用的.Text也是这么做的。我的这一个blog的地址是:http://blog.csdn.net/dawave/archive/2004/08/07/68322.aspx,仔细一看,大家就发现 2004/08/07/68322 其实是参数。20004/08/07 是日期,68322 是文章的ID号。大家可以阅读.Text的源代码研究。如果,觉得那个太复杂,看下面我的例子。

因为内容比较多,也向上次(Eclipse, Lomboz & Tomcat)一样,要分几次写完。

环境 .NET 加 IIS
基本的开发概念你要具备,比如,在IIS里建一个Application,知道在哪里找到web.config文件,编译你的C#文件并放在正确的位置,编辑ASPX文件。这些细节我就一笔带过了,希望你已经知道怎么处理了,不然的话,请参考有关ASP.NET的入门教程。

为什么我们不讲VS .NET?因为它不是免费的自由软件,不能保证每个人都能得到它,如果以他为基础的话,那些没钱用VS .NET的朋友就一头雾水了。

首先我们讲handler,ASP.NET用handler来处理一些类似filter,或者listener的任务,一个最简单的handler程序是这样的:

namespace test
{

public class TestHandler : IHttpHandler
{
  public void ProcessRequest(HttpContext context)
  {
    context.Server.Transfer("../index.aspx?from=myhandler");
  }

  public bool IsReusable
  {
   get { return true; } 
  }
}
}

至少两个函数是必需的:ProcessRequest, IsReusable。上面这个handler把它接到的request全部转到上级目录的index.aspx。编译这个handler并把它放到bin目录下。大家记得要先放一个index.aspx在那里,不然测试的时候显示文件找不到,还以为是handler出错。

关于网页转向,这里有一点要注意:其实有两种转向的方法,transfer和redirect,transfer发生在服务器端,redirect发生在client端。这就是为什么transfer转向的时候,你的IE地址栏不发生变化,而redirect转向的时候,新地址显示在地址栏里了。我们要求我们的网页没有参数,就必须使用transfer,而不能用redirect,从技术上讲,transfer还比redirect要快一些。

接下来的事情要修改web.config,在System.Web段里,加上下面的内容:

< httpHandlers >
  < add verb="*" path="test/*.aspx" type="Test.TestHandler,Test" / >
< /httpHandlers >

它告诉IIS碰到test目录下所有的aspx文件,由我们的testHandler来处理。

测试:打开IE,输入localhost/test/abc.aspx,应该转到你的application 目录中的index文件了。

index里你可以这样测试,简单的加一个< % Request["from"] % >,让handler传过来的参数显示在屏幕上。

再此发表的有关 ASP.NET handler 系列的文章均属本人原创,转摘或引用请注明出处。

下次介绍在handler里处理处理参数

基于ResNet + LLM大语言模型的分类识别系统设计与实现,Web前后端分离,Django+vue3+AI助手模块+ResNet50算法+LLM 联动+Element Plus等技术,全网独发 分类识别任务是计算机视觉中的重要任务,广泛应用于智慧校园分类、智慧农业、智慧生活场景分类等领域。常见的分类模型有 VGGNet、ResNet 、MobileNet 、ConvNeXt、DenseNet、ViT、Swin Transformer、YOLOv8/11/26。本项目结合 ResNet分类识别算法 + LLM大语言模型联动 ,使用 Django + Vue3,构建了一个通用的 Web 前后端系统,用户端 + 管理端 ,便于用户操作检,不仅可以用于大论文的工作量展示,还可以作为毕业设计。 阅读详情

相关推荐

从零训练Qwen3-VL

如果你未来想做的是「在公开权重上继续做大规模多模态 pretrain(比如换数据、换目标函数)」而不是在完全随机初始化上起步,这两类代码会比 Open-Qwen2VL 更直接。参考 Qwen2-VL / Qwen2.5-VL 披露的流程,可以大致推测 Qwen3-VL 也是类似的三阶段:(直接在学术算力(8×A100-40G)上从零预训练了一个 2B 参数的多模态 Qwen2-VL 风格模型:(的配置和训练脚本,理解它是如何把「任意 ViT + 任意 LLM + 任意图文数据」拼在一起的。

u013250861的博客 530

asp.net伪静态页面生成方法1

利用Mircosoft URLRewriter.dll实现页面伪静态

Hyperhawk Blog 614

tesseract VS2015+WIN32编译的动态库,含lib、dll、include,C++开发库

该资源包是下载最新的Tesseract最新源码使用VS2015编译的WIN32库,内涵lib、dll和头文件,C++开发者可以直接引用

ASPX 物理路径和虚拟路径转化

转:https://www.cnblogs.com/wang-123/archive/2012/03/27/2419245.html 2 程序中虚拟路径和物理路径的转化 #region 物理路径和相对路径的转换 //本地路径转换成URL相对路径 private string urlconvertor(string imagesurl1) ...

qq_15785207的博客 514

asp.net 中级 虚拟路径

1.特殊路径标示“~” 和“/表示网站根目录(域名)、../表示上级目录、./表示当前目录”等Http标准定位不一样,~是ASP.NET定义的特殊符号,是asp.net内部进行定义推荐的用法,推荐资源定位都使用~从应用根目录开始定义。应用根目录和网站根目录的区别在于:如果将一个应用部署到http://www.xxxxx.com/search这个目录下,应用的根目录是“http://ww...

weixin_30292843的博客 150

ASP.NET虚拟路径小结

一、虚拟路径的概念 “虚拟路径”是指请求 URL 中跟在服务器标识符后面的部分举例。 如绝对路径:http://www.mysite.com/MyApp/Default.aspx,其对应的虚拟路径为:/MyApp/Default.aspx。 二、虚拟路径符号 “/”网站根目录。网站根目录即路径中的域名部分,如http://www.mysite.com/。 “./”当前目录。...

aa781398079的博客 219

asp net服务器虚拟路径,asp.net获取服务器虚拟路径

ASP.NET获取路径的方法原文:【转载】ASP.NET获取路径的方法 HttpContext.Current.Request.PhysicalPath;获得当前页面的完整物理路径.比如 F:\XFU.NSQS\project\website\Default.aspxHttpContext.Current.Request.PhysicalApplicationPath;...文章杰克.陈2016-...

weixin_39834745的博客 974

ASP.NET URL重定向技术

别看题目挺深奥,其实这项技术说白了就是:用虚拟路径代替URL参数来执行aspx页。URL参数大家都应该明白怎么回事吧,比如http://spaces.msn.com/blog.aspx?name=dcsoft, name就是参数参数值是dcsoft,然后交给blog.aspx处理,blog.aspx能读取这些参数虚拟路径是什么呢,博客大家都用过吧,比如http://spaces.msn.com

DCSOFT 4863

asp.net 重定向

ASP.NET URL重定向技术         别看题目挺深奥,其实这项技术说白了就是:用虚拟路径代替URL参数来执行aspx页。URL参数大家都应该明白怎么回事吧,比如http://spaces.msn.com/blog.aspx?name=dcsoft, name就是参数参数值是dcsoft,然后交给blog.aspx处理,blog.aspx能读取这些参数。       虚拟路径是什么呢,

hblzg的专栏 1316

如何使用asp.net development server代替IIS

如何使用asp.net development server代替IIS<a style="position: relative; cursor: hand;" title="减小字体" onclick="function onclick(){newasp_fontsize(0,mainNewsContent)}">减小字体 <a style="position: relativ

thunder09的专栏--没事就写点儿 1348

ASP.NET开发入门

1.1.1 概述ASP.NET是一种开发动态网站的技术,他是.NET框架的一部分,可以使用任何.NET兼容的语言(如VisualBasic, .NET, C#, J#等语言)来编写ASP.NET网站..NET Framework是Microsoft公司推出的完全面向对象的软件开发与运行平台.CLR(Common Language Runtime,公共语言运行时):负责管理和执行由.NET编译器编译产生的中间语言代码类库:1.1.3 ASP.NET的特性。

qqyu60的博客 3013

关于ASP.NET Routing的几点内容

好吧,我承认这个标题有些八股。 在之前的文章中,有一些朋友会问我一些关于ASP.NET Routing的内容。这个组件的重要性越来越大,ASP.NET MVC,ASP.NET Dynamic Data都用到了ASP.NET Routing。事实上,在ASP.NET 4.0中还会出现对ASP....

chuifuhuo6864的博客 150

使用vs2005自带的asp.net development server代替IIS

vs2005自带的asp.net development server代替IIS <br />    个人不太喜欢计算机里面启动太多服务。而做ASP.NET的开发又需要装IIS,于是常常不停地启动w3svc,iisadmin等服务,相当的麻烦。<br />   于是考虑完全不装IIS,使用VS2005自带的asp.net development server来代替IIS。<br />   asp.net development server的进程名称是:WebDev.WebServer.EXE,搜索一下这个

zccoast的专栏 500

ASP.NET获取网站根目录(路径)

ASP.NET获取网站根目录(路径)<br />  网站在服务器磁盘上的物理路径: HttpRuntime.AppDomainAppPath<br />  虚拟程序路径: HttpRuntime.AppDomainAppVirtualPath<br />  任何于Request/HttpContext.Current等相关的方法, 都只能在有请求上下文或者页面时使用. 即在无请求上下文时,HttpContext.Current为null. 而上面提到的方法一直可用.<br />  对于全局Cache对象的访

1609

ASP.NETASP.NET 4.0 尚未在Web 服务器上注册。

一、问题描述 Microsoft Visual Studio ASP.NET 4.0 尚未在 Web 服务器上注册。您需要手动将 Web 服务器配置为使用 ASP.NET 4.0,这样您的网站才能正确运行。 [ 确定 ] [ 帮助 ] 二、aspnet_regiis.exe 说明 %windir%\Microsoft.NET\Framework\v4.0.30319..

少莫千华 2640

用SharpDevelop3调试ASP.NET的方法

最近下载了SharpDevelop,感觉各方面都不错,唯一的缺憾是不能调试ASP.NET。经过几番搜索和试验,终于发现了用它调试ASP.NET的方法。 SharpDevelop现在已经支持创建ASP.NET项目,虽然很多文件类型的编辑器还没有,比如JavaScript,CSS等,但是我觉得这些都不是最重要的,最重要的是要能够进行调试,调试才是开发中的重中之重啊。 新建一个ASP.NET项目,如...

weixin_34326179的博客 1373

ASP.net难点解析

认识Asp.net 中相对路径与绝对路径 分类: 技术文档2010-01-1217:051490人阅读评论(1)收藏举报 好多人对相对路径与绝对路径老是混淆记不清楚,我从整理了一下,希望对大家的认识有帮助。 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1.Request.Applicat

NDK2010_的专栏 1万+

asp.net 简易服务器

asp.net 简易服务器 有时想临时使用以下asp.net 程序,但IIS一般由于比较消耗资源被关闭,或没有安装IIS,可以使用Visual Studio 中自带的web server,作为轻量级的服务器使用。 各Visal Studio服务器带的asp.net服务器路径如下: vs2005 %systemroot%\Microsoft.NET\Framework\...

bachun9166的博客 306

ASP.NET获取URL

//获取完整url (协议名+域名+站点名+文件名+参数)string fullUrl = Request.Url.ToString();//获取客户端请求的URL信息(不包括主机和端口)string rawUrl = Request.RawUrl; //获取站点名+页面名string absolutePath = Request.Url.AbsolutePath; //获取主机部分...

A15122060709的博客 162
上一篇: web services的基本概念
下一篇: 终于知道把参数路径化的中文翻译名字了 - URL重写
dawave
博客等级 码龄23年 18粉丝 27原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值