VS2012创建ASP.NET WEB窗体应用程序失败?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2012创建ASP.NET WEB窗体应用程序失败?相关的知识,希望对你有一定的参考价值。

怎么没有人帮助啊

参考技术A 打开vs2012——〉 工具——〉 扩展和更新——〉联机——〉 下载 NuGet Package Manager 下载安装后 重新启动vs2012 就这样。ok 参考技术B 我的也一样 不知道怎么解决

ASP.net(C#):是不是可以从另一个 Web 窗体访问控件?

【中文标题】ASP.net(C#):是不是可以从另一个 Web 窗体访问控件?【英文标题】:ASP.net(C#): Is it possible to access controls on one webform from another?ASP.net(C#):是否可以从另一个 Web 窗体访问控件? 【发布时间】:2019-05-07 14:37:17 【问题描述】:

我目前正在构建一个网络应用程序,它将成为我公司的新数据中心(内联网网站)。我将它连接到活动目录并设置了一个用户组以允许页面编辑。我正在创建一个用户控件,以赋予我们的 QA 经理更多的编辑能力,这样他就可以管理网站,而无需我重新编写任何代码。

这是我的问题: 因为我使用用户控件作为新的编辑控件;我需要能够访问正在使用编辑控件的任何页面上的控件。对于我的生活,我无法弄清楚如何。

这是我正在尝试做的一个简单示例:

 WebPartManager wpm = (WebPartManager)WebPartManager.GetCurrentWebPartManager(this.Page);


    TextBox testBox = new TextBox
    
        ForeColor = System.Drawing.Color.Blue,
        ID = "testID",
        Width = 500,
        Height = 200
    ;


    GenericWebPart testGWP = wpm.CreateWebPart(testBox);

    wpm.AddWebPart(testGWP, WebPartZone4, 1); //heres where I get my error. WebPartZone4 is a webPartZone in one of my pages.

如果我在显示 WebPartZone 的页面上运行此代码,则可以达到预期的效果,因此我知道该代码有效。我的用户控件只是无法在另一个页面上看到 WebPartZone。任何帮助都会很棒。谢谢。

【问题讨论】:

这不是因为每个页面都包含并且您需要从另一个页面发布/获取数据吗?我很确定这是here 概述的保护问题 @CaptainWibble 我已经阅读了那篇文章。它指的是在同一个 Web 表单中使用多个类或命名空间。我试图让我的用户控件识别另一个页面的控件。我已经看到通过一个用户控件使用会话状态更改另一个用户控件的属性来完成这种效果。我希望有办法做类似的事情。 好吧,一种方法是禁用@page 中的ValidateRequests,并使用带有AJAX 的ASHX 处理程序异步运行任何访问请求,因为这是在Intranet 上(注意这是一种用于检查脚本注入的方法)。 你可能刚刚给了我一个想法。如果可行,我将测试我的理论并发布答案。谢谢。 是的...我在 ASP.NET Webforms 中开发网站时遇到了类似的问题。这是旧技术,所以你可能需要旧的解决方案......试试单例。这是过时的模式,但在 Webforms、Winforms 和旧的 Windows Mobile 应用程序中仍然有用。尝试此站点以获取更多信息、理解、类型和示例:link 【参考方案1】:

我觉得这最终变得多么容易有点愚蠢,但对于任何有同样问题的人来说都是如此。

这是我用来测试的简单用户控件的设计。它只是一个按钮。 xD

<%@ Control  Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl3.ascx.cs" Inherits="AcmeCompany_DATA_CENTER_v2.WebUserControl3" %>
<asp:Button ID="Button1" runat="server" OnClientClick="Button1_Click" Text="Button" OnClick="ButtonCreate_Click" PostBackUrl="~/WebUserControl3.ascx" />

这里是用户控件的代码

 protected void ButtonCreate_Click(object sender, EventArgs e)
    
        WebPartManager wpm = (WebPartManager)WebPartManager.GetCurrentWebPartManager(this.Page);

        TextBox testBox = new TextBox
        
            ForeColor = System.Drawing.Color.Blue,
            ID = "testID",
            Width = 500,
            Height = 200
        ;          

        GenericWebPart testGWP = wpm.CreateWebPart(testBox);

        wpm.AddWebPart(testGWP, wpm.Zones["WebPartZone4"], 1);
    

我不知道 webpartmanager 中的 Zones 类,我只是在滚动查找可能有用的东西时遇到了它。多田.....总是小事。

附: @Maciej S。谢谢,虽然你没有给我答案,但我们的对话帮助我的大脑思考寻找某些东西。

【讨论】:

没问题。 :) 很高兴听到我可以提供帮助,即使它不是完整的解决方案。 :)

以上是关于VS2012创建ASP.NET WEB窗体应用程序失败?的主要内容,如果未能解决你的问题,请参考以下文章

在VS2015中缺少ASP.NET Web应用程序模版

VS2019为啥asp. net里面没有web窗体?

HTML 编码字符串 - ASP.NET Web 窗体 VS Razor 视图引擎

在 IIS 上使用 VS 2012 发布我的 asp.net mvc Web 应用程序不起作用,除非我在 VS 中运行 Web 应用程序

vs2005新建项目中没有ASP.NET WEB应用程序,如何建立?

ASP.NET Web 窗体中的输出编码安全问题