首页 > 其他分享 >处理URL重写后postback重写失效的问题 .browser文件

处理URL重写后postback重写失效的问题 .browser文件

时间:2023-03-22 10:01:20浏览次数:28  
标签:控件 ASP 浏览器 URL postback NET 重写 browser


 大家在使用ASP.NET和重写URL时经常遇到的一个疑难杂症跟处理postback场景有关,具体地来说,当你在一个网页上放置一个 <form runat="server"> 控件时,ASP.NET 会自动地默认输出标识的action属性指向当前所在页面。当使用URL重写时,会出现这样的问题,<form> 控件显示的URL不是原先请求的URL(譬如,/products/books),而是重写过后的URL(譬如,/products.aspx?category=books)。这意味着,当你做一个postback到服务器时,URL不再是你原先干净利落的那个了。

 

        在 ASP.NET 1.0 和1.1 中,大家经常诉诸于继承<form> 控件生成他们自己的控件,来正确地输出要使用的action属性。虽然这可以工作,但结果有点乱,因为这意味着你需要更新你所有的页面来使用这个另外的表单控件,而且有时在Visual Studio所见即所得设计器里也会遇上问题。

 

这不要求在你的.aspx页面里做任何编码改动,而只要在你的/app_browsers文件夹里添加一个.browser文件,注册使用一个控件适配类即可输出新的action属性。

 

App_Browser文件夹简单介绍:

该可选的文件夹包含.browser文件。.browser文件描述浏览器(不管是移动设备浏览器,还是台式机浏览器)的特 征和功能。ASP.NET在安装路径下的Config/Browser文件夹中安装了大量.browser文件,这些文件供所有应用程序共享。我们只是把 当前应用程序特有的浏览器文件放在App_Browser文件夹下。.browser文件的内容即时动态地进行编译,以便向ASP.NET运行库提供最新 的浏览器信息。

让我们简单谈谈拥有一个自定义的.browser文件可能有帮助的场景。设想应用程序使用了一个在某个浏览器下不能有效呈现的控件。在指定的浏览器中显示宿主页面时,可以编写一个.browser文件,迫使ASP.NET使用一个不同的适配器来生成该控件。


< browsers > 
  < browser id = " browserID " >
    < controlAdapters >
      < adapter controlType = " Samples.CustomControl " adapterType="Samples.Adapters.CustomControlAdapter" />


假设browserID与ASP.NET识别的标准浏览器之一相匹配,则上文所示的.browser文件指示在指定的浏览器下使用CustomControlAdapter呈现CustomControl。

标签:控件,ASP,浏览器,URL,postback,NET,重写,browser
From: https://blog.51cto.com/dupeng0811/6142097

相关文章

  • URL和URI的区别及理解
    目录解释例子详细说明一、URI二、URL三、URI和URL之间的区别四、通俗说版权特别声明解释URI包括URL和URN两个类别,URL是URI的子集,所以URL一定是URI,而URI不一定是URLURI......
  • #yyds干货盘点#php curl发送post请求,向接口发送请求并返回数据
    在微信开发中,很多请求都是用curl实现的,并不是跳转的curl或者ajax。index.php<?php//api接口$url="server.php";//发送请求functionhttpGet($url){$curl=curl_init(......
  • 在Vue项目中为何要重写push和replace
    0.前言    为啥要重写push和replace,主要是你不写他会报错啊,为啥会报错呢,主要是因为函数式路由push方法返回的是一个promise对象,我们知道promise对象是有成功回调......
  • 4-springboot多数据源配置报错Cause: java.lang.IllegalArgumentException: jdbcUrl i
    springboot2.0版本以上的多数据源配置改成:spring.datasource.refunddb.url=jdbc:mysql://refund地址spring.datasource.refunddb.username=uatspring.datasource.refundd......
  • Apache Jmeter进行curl请求并发测试
    1、按照截图顺序进行新建(新建线程组) 2、在新建的线程组中右键添加 3、添加相关协议、IP、端口、HTTP请求形式{"jsonrpc":"2.0","method":"eth_sendTransaction","params......
  • curl 的用法指南
    《curlcookbook》https://catonmat.net/cookbooks/curl简介curl是常用的命令行工具,用来请求Web服务器。它的名字就是客户端(client)的URL工具的意思。它的功能非常......
  • Java基础知识点(方法的重写)
    一定义:当父类的的方法不能满足子类现在的需求时,需要进行方法重新。 在我看来方法的重写就是父类的方法中的行为不能表达出子类的特征,而子类还需要进行行为而对父类的方法......
  • 方法重写
    静态方法:方法的调用只和左边定义的数据类型有关重写只能为非静态{关键字只能为public  重写只能在子夫类中使用(需要继承关系只能继承方法 而且是子类重写父类的方法......
  • curl用法:如何返回页面状态码 status code
    利用Shell测试用例时需要检测url的状态是否为 200,如果是200则正常,404/500则出现问题,需要检查。$curl-sIL-w"%{http_code}\n"-o/dev/nullhttps://baidu.com20......
  • config.baseUrl.dev 变量 转移到 .env.local 中
    config.baseUrl.dev变量转移到.env.local中上下文vue前端开发问题多人写代码的时候,会提交config.js里面的配置文件解决方案在根目录创建​​.env.local​​​文件内......