gpt4 book ai didi

c# - 我的 http 模块中未触发 BeginRequest 事件

转载 作者:行者123 更新时间:2023-11-30 21:16:34 25 4
gpt4 key购买 nike

我有一个 http 模块,但自从迁移应用程序后,.NET 4 一直在经历一些奇怪的行为。 BeginRequest 事件不会在某些请求上触发(但会在其他请求上触发)- 到目前为止,我还没有设法确定何时触发和不触发的模式。

EndRequest 事件似乎总是被触发。

我找到这篇文章: http://connect.microsoft.com/VisualStudio/feedback/details/535999/beginrequest-event-is-not-raised-in-my-http-module-on-iis7

但微软的唯一建议似乎是需要在 system.webServer/modules 部分中进行输入 - 我已经准备好了。

我是 .net 和 mvc 的新手 - 有人对我如何查明此问题的原因有任何建议吗?

非常感谢任何帮助/建议。

最佳答案

我花了很多时间试图破解为什么它并不总是触发!这是答案:您需要一个围绕被调用请求的更新面板。因此,例如,如果您有一个需要调用开始和结束请求处理程序的按钮,那么您可以在该按钮周围放置一个 Ajax 更新面板并将“UpdateMode”设置为“Always”。这是因为这些 javascript 事件仅在异步回发之前和之后触发。 Ajax 更新面板将提供异步调用。

例子:

<script type="text/javascript" language="javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args) {
//Some code
}
function EndRequestHandler(sender, args) {
//Some code
}
</script>

<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel runat="server" ID="UpdatePanel6" UpdateMode="Always">
<ContentTemplate>
<asp:Button runat="server" ID="btnGo" Text="Go" OnClick="btnGo_OnClick"/>
</ContentTemplate>
</asp:UpdatePanel>

请注意,这是 asp.net 中的正确方法。我不太确定 MVC。希望对您有所帮助。

关于c# - 我的 http 模块中未触发 BeginRequest 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5141734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com