- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试创建一个虚拟文件。例如,我有一个组件可以从具有给定 ID 的数据库中获取 CMS 页面。现在我有一个类似 /hello/world/
的 url,我想将页面 /hello/world/
解析到我的 ContentPlaceHolder
中母版页
。
在 IHttpModule
中,我能够捕获 URL,并且可以将其重写为物理文件。
那只是第一步,现在我需要加载一个不存在的虚拟页面。因此,我认为我不能使用 app.Context.RewritePath()
,因为这需要服务器上的物理文件。
问:有什么方法可以在 Masterpage
的 ContentPlaceHolder
中呈现我的 CMS 页面组件?没有物理文件?
我确实有一个关于组合 IHttpModule 并将文件重写为 .cmspage
扩展名然后使用 IHttpHandler
捕获该文件扩展名并加载我的组件的想法,但这看起来确实没有完成?
最佳答案
当您调用 ASP.NET 页面时,IIS 使用默认的 VirtualFileProvider
从 IO 加载文件,如果文件不在路径中,将引发异常。好消息是您可以实现自定义提供程序并添加提供程序。因此,如果该文件不存在于 IO 中,您可以从任何地方加载您自己的内容(从数据库、其他文件加载...)。
您可以使用它加载虚拟 ascx、aspx 和所有 ASP.NET 文件扩展。
首先,您需要编写自定义 VirtualFile
和 VirtualPathProvider
。然后在 Global.asax
中使用 HostingEnvironment.RegisterVirtualPathProvider
注册提供者。
这是从程序集资源中获取文件内容(不存在)的一个很好的实现:http://www.codeproject.com/Articles/16803/Embedded-UserControls-Revisited
关于c# - HTTPModule 处理页面内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18211588/
谁能告诉我这个 HttpModule 的目的?它出现在我的 HttpModule Collection 列表中,但我不知道它的用途。 System.ServiceModel.Activation.Ht
有没有一种好方法可以排除某些页面使用 HTTP 模块? 我有一个使用自定义 HTTP 模块来验证 session 的应用程序。 HTTPModule 在 web config 中是这样设置的:
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: HTTPModule Event Execution Order? 我正在调查 Page 对象最初是在 Ht
我在服务器上安装了一个 HTTP 模块。奇怪的是它可以工作,但每隔一段时间它就不会被执行。我有日志记录,在它不起作用的时候,它没有到达记录的代码。我在 IIS 日志或事件查看器中也没有看到任何内容。
我正在尝试创建一个虚拟文件。例如,我有一个组件可以从具有给定 ID 的数据库中获取 CMS 页面。现在我有一个类似 /hello/world/ 的 url,我想将页面 /hello/world/ 解析
当调用 web 服务时,我需要在调用某些操作时更改响应文本。 因此我创建了 HttpModule 来捕获响应并更改它。 代码下方: public class BeginEnd : IHttpModul
我知道这个已经被问过了here但是答案(改为使用处理程序)并不能解决问题,因为我使用的是未实现 IHttpHandler 的第三方组件。 那么,再一次,有什么方法可以根据特定请求加载/卸载 HttpM
如何设置它们? 如果我在 HttpModule 中有以下代码。 public static event EventHandler OnPostProcessing; 并在使用 EventHandler
我已经实现了一个 HttpModule,它拦截每个请求的响应流,并在每个文本/html 类型的响应上运行六到十几个 Regex.Replace()。我担心我在这里遭受了多少性能损失。有什么好方法可以查
我有一个 HttpModule,我将几个不同的在线资源拼凑成一个(大部分)既适用于传统 ASP.NET 应用程序,也适用于 ASP.NET MVC 应用程序的东西。其中最大的一部分来自 CodePle
我试图找到一种以编程方式检查是否加载了特定 HttpModule 的方法(因为我正在编写的组件需要模块正常工作)。我正在努力: bool ismodulepresent = false; foreac
通过网络搜索,我收到很多关于 HTTPModule 路由默认是单线程还是多线程的相互冲突的帖子。 我正在尝试在本地、UAT 和部署环境中调试快速不同的性能,并且想知道 HTTPModule 是否存在我
我是否必须锁定对实例成员的访问? 示例: public class HttpModule : IHttpModule { //... Dictionary foo; void
我正在查看许多页面关于 asp.net 的性能建议。具体来说,删除未使用的 httpmodules 部分: 这里列出
从 Asp.Net 5 开始,我们现在有了“中间件”概念来更改请求和响应或与请求和响应交互。所有这些都是在使用 HttpModule 之前完成的。 这是我的问题。 到底什么是 ASP.NET 中间件?
有人知道某个站点或页面,或者知道 HTTPModule 事件执行的 HTTPApplication 类的事件的执行顺序吗? 我找到了MSDN Documentation对于所有事件,但它没有显示流程步
我正在编写一个应用程序,第三方供应商可以在其中编写插件 DLL 并将它们放入 Web 应用程序的 bin 目录中。我希望这些插件能够在必要时注册自己的 HttpModule。 无论如何,我是否可以在运
我们突然遇到 CPU 峰值。检查我们的 Sitecore 日志后,我注意到有很多日志条目带有“11:49:26 INFO HttpModule is beinginitialized”。据了解,这应该
我创建了一个简单的 HttpModule 来记录我现有网络服务的使用情况。有一个包含单个类的 dll public class TrackingModule : System.Web.IHttpMod
我正在尝试使用 HttpModule 来拦截对不包含任何代码文件(图像、音乐等)的特定目录的请求。我拥有的模块可以工作,除了它适用于所有文件夹而不仅仅是我想要它应用的文件夹。我试图在我的 web.co
我是一名优秀的程序员,十分优秀!