【问题标题】:C#, Web Form, and Visual Studio: How to convert from Windows Forms to ASP.Net Web Application?C#、Web 窗体和 Visual Studio:如何从 Windows 窗体转换为 ASP.Net Web 应用程序?
【发布时间】:2018-01-05 03:29:00
【问题描述】:

我是初学者,请多多包涵。

我创建了一个虚拟窗体来测试一些代码。它基本上有 5 个文本框和一个按钮,用于将文本保存到一个对象数组中,其中包含该信息的字段。然后我将其显示到富文本框上。

我在一个小组中工作,我的任务是处理 Asp.Net 应用程序的后端,而其他人则通过将文本框和按钮放置在他们认为合适的位置来处理布局。

我正在尝试将此代码转换为 ASP.NET 版本。 我真的只需要知道按钮事件处理程序(button_click)的 ASP.NET 等效项,因此我知道在哪里调用该方法 textbox.Text 以便我可以将代码从 textbox.text 更改为它的 ASP.NET 对应项,以及任何其他需要更改才能使该应用正常运行的内容,例如指令。

我简化了代码,以便每个事件处理程序只需要调用一个适用的方法。

【问题讨论】:

  • 处理程序和属性几乎相同。阅读文档。

标签: c# asp.net winforms web-applications


【解决方案1】:

凯文,基本上有两种方法可以做到这一点。您可以使用 Visual Studio 的 HTML 设计器为您创建事件,也可以从后面的代码手动完成。

这就是你使用设计器的方式:

您基本上可以将一个新的 Button 控件拖放到设计器中并覆盖其 OnClick 事件(一旦您选择该控件,它将显示在 VS 的属性窗口中)。然后 VS 会将事件添加到后面的代码中(它是与 .aspx 关联的 .cs 文件)。你最终会得到这样的结果:

(在 .aspx 页面中)

<asp:Button ID="TestBtn" runat="server" OnClick="Button_Clicked" Text="Click Me" />

(在设计器中重写OnClick事件会在.cs文件中创建如下方法)

 protected void Button_Clicked(object sender, EventArgs e)
 {
    //Do something here 
    //Display();
 }

您基本上可以通过将 Button 控件拖放到设计器中以编程方式执行相同的操作(与之前相同)。不同之处在于您将从后面的代码而不是设计器中覆盖其 OnClick 事件。

(在 .aspx 页面中)

<asp:Button ID="TestBtn" runat="server" Text="Click Me" />

(在 .cs 文件中)

protected void Page_Init(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        TestBtn.Click += TestBtn_Click;
    }           
}
void TestBtn_Click(object sender, EventArgs e)
{
   //Do things here
    //Do Something()
}

请记住,第二种方法是首选,但这完全取决于您和您的团队。

如果您想了解更多关于 webform 的事件和页面生命周期的信息,这里有一些来自 MSDN 的优秀文档

https://msdn.microsoft.com/en-us/library/6w2tb12s.aspx

https://msdn.microsoft.com/en-us/library/ms178472.aspx

【讨论】:

    【解决方案2】:

    在 ASP.Net web 表单中,按钮会像

    <asp:Button runat="server" ID="btnSomeButton" OnClick="btnSomeButton_Click" Text="Login" />
    

    而处理这个事件的 C# 代码会是这样的

    protected void btnSomeButton_Click(object sender, EventArgs e)
        {
    
        }
    

    在该函数中,您可以使用诸如 textbox.Text 之类的命令

    【讨论】:

    • 感谢您的回复,\n我说我有一些方法可以在单击按钮时显示到文本框,例如 Display(),在 ASP.NET 版本上会怎样? \n-编辑:我重新阅读了您的评论,我现在了解到 ASP.NET 按钮的事件处理程序已经存在于应用程序文件中的某个位置?
    • 您可以在该按钮的点击方法中调用 Display() 函数
    • No Web Forms中有两个文件,一个一般是.aspx。并显示 Web 窗体的外观,另一个是 C# 文件并附加到 aspx 文件。 C# 文件包含所有代码。您必须为按钮制作事件处理程序(或者只需双击 Web 表单设计中的按钮)
    猜你喜欢
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    相关资源
    最近更新 更多