【问题标题】:WebResource.axdWebResource.axd
【发布时间】:2012-02-13 06:15:00
【问题描述】:

我在 ASP.Net 中有 2 个页面

第一页有一些 .Net 控件,因此呈现出用于 WebResource.axd 的 javascript 包含

另一个页面不呈现任何 .Net 控件,并且有一些自定义 javascript 生成一些 html。这包括验证器和其他 .Net 控件,因为最初未呈现 WebResource.axd 并且没有回发我在提交验证器等时遇到问题。

问题是 IIS 或 .Net 如何确定它需要生成 WebResource.axd,因此即使最初 .Net 认为不需要它,我也可以让我的新页面呈现它。

【问题讨论】:

  • 你能告诉我们没有 WebResource.axd 的页面的标记吗?

标签: asp.net asp.net-ajax


【解决方案1】:

WebResource.axd 被添加到您的页面中,其中包含带有嵌入式资源的 .Net 控件。因此,如果您的页面没有嵌入资源的控件,即只有标准 HTML,您将看不到 WebResource 文件。

这是一个关于它如何工作的好博客:http://scottonwriting.net/sowblog/archive/2010/10/28/just-where-is-webresource-axd.aspx

【讨论】:

    【解决方案2】:

    WebResource.axd 的包含将由控件(谁需要它)本身添加。它们不会被 IIS 或底层 ASP.NET 框架添加。

    例如,如果一个控件依赖于嵌入式网络资源,它将执行以下操作:

    string scriptUrl = Page.ClientScript.GetWebResourceUrl(this.GetType(), "RESOURCE_NAME.js")
    
    Page.ClientScript.RegisterClientScriptInclude("RESOURCE_NAME.js", scriptUrl);
    

    看起来您创建了一个对 Web 资源的依赖项,但由于您没有请求它,所以它没有被包含在内。它仅在第一页上起作用,因为第一页上的其他控件也需要它。

    因此,在您继续之前,您需要知道您需要哪些网络资源,然后自己将其包含在内。我对这个解决方案的唯一问题是您正在使用不受您控制的 Web 资源。所以如果你能自己写。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      相关资源
      最近更新 更多