簡體   English   中英

將Aspx頁面從VB轉換為CS

[英]Converting Aspx page from VB to CS

我有一個asp.net頁面WineCompDefault.aspx,該頁面最初是通過VB代碼實現的。 我現在正在嘗試將背后的代碼更改為CS。 我修改了aspx頁面中的page指令,如下所示:

來自-

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="WineCompDefault.aspx.vb" Inherits="WineCompDefault" %>

至 -

<%@ Page Language="C#" AutoEventWireup="false" CodeFile="WineCompDefault.aspx.cs" Inherits="WineCompDefaultCS" %>

WineCompDefault.aspx.vb文件包含以下內容:

Imports Microsoft.VisualBasic
Imports System.Web.UI
Imports MarymonteDAL
Imports System.Data
Imports System.Data.OleDb


Partial Class WineCompDefault
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

    Protected Sub btnLogOn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLogOn.Click
        Dim myLabel As Label
        myLabel = Page.FindControl("lblTitle")
        If Not myLabel Is Nothing Then
            lblResults.Text = myLabel.Text
        Else
            lblResults.Text = "Could not find the label control."
        End If
        btnLogOn.Visible = False
    End Sub
End Class

從VB到C#的代碼轉換器提供了以下內容(除了我將類名更改為WineCompDefaultCS,而且我還在page指令中進行了更改,因此我可以將兩個代碼都放在項目中的文件后面)

using Microsoft.VisualBasic;
using System.Web.UI;
using System.Data;
using System.Data.OleDb;


partial class WineCompDefaultCS : System.Web.UI.Page
{


    protected void Page_Load(object sender, System.EventArgs e)
    {
    }

    protected void btnLogOn_Click(object sender, System.EventArgs e)
    {
        Label myLabel = default(Label);
        myLabel = Page.FindControl("lblTitle");
        if ((myLabel != null)) {
            lblResults.Text = myLabel.Text;
        } else {
            lblResults.Text = "Could not find the label control.";
        }
        btnLogOn.Visible = false;
    }

    Public WineCompDefault()
    {
        Load += Page_Load;
    }
}

問題是它說“找不到公共的類型或名稱空間”。 我不知道什么是錯的或缺失的。 所有幫助,不勝感激。

(此外,請注意,一旦我確定CS可以正常工作,我將刪除VB文件。這就是為什么我現在希望將兩者都保留在項目中的原因)

您的構造函數不正確。 構造函數必須始終與類名( WineCompDefaultCS )匹配。 另外,c#區分大小寫,訪問修飾符(例如public應小寫。

更改此:

Public WineCompDefault()
{
    Load += Page_Load;
}

對此:

public WineCompDefaultCS()
{
    Load += Page_Load;
}

您重命名了該類,但未重命名該構造函數。 在C#中,構造函數必須與類名匹配。

WineCompDefault應該是WineCompDefaultCS

一個古老的問題-但這是我到目前為止所能找到的-

您需要刪除文件,然后使用“添加”->“新文件”(這次選擇c#)將其添加回去,然后粘貼aspx(使用lang =“ C#”和CodeFile =“ WineCompDefault.aspx.cs”)

我不知道Visual Studio為什么或如何知道頁面最初轉換的方式-我無法確定VS在何處存儲此信息。

我希望這有幫助!

您缺少退貨聲明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM