Fresh VS2017网站项目以这种方式定义了Default.aspx。
<%@ Page Title="Home Page" Language="VB" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeFile="Default.aspx.vb" Inherits="_Default" %>
我为它提供了一个Default.aspx.vb文件,如下所示:
Partial Public Class _Default : Inherits Page
Public Function Teapot() As Boolean
Return True
End Function
End Class
和这样的Default.aspx.cs文件:
public partial class _Default : System.Web.UI.Page
{
protected override void OnPreInit(EventArgs e)
{
base.OnPreInit(e); // There is a breakpoint on this line
Teapot(); // Error: The name 'Teapot' does not exist
in the current context
}
}
尽管有关使用Teapot()的设计时间错误,网站仍然运行,并且断点被标记为The breakpoint will not currently be hit.
就好像C#文件的内容未包含在项目中一样尽管使用了部分类并且在web.config中包含以下内容:
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
</compilers></system.codedom>
如何获取_Default
页面类中包含的C#和VB文件的内容?
答案 0 :(得分:3)
你不能在同一个项目中混合使用vb和c# - 如果你在visual studio中注意到项目文件是.vbproj或.csproj。你可以在解决方案中 - 在vb中有1个proj,在c#中有1个。
根据这一点,您可以在App_Code目录中的Web项目中使用它们:
http://pietschsoft.com/post/2006/03/30/ASPNET-20-Use-VBNET-and-C-within-the-App_Code-folder.aspx
但您可以使用UserControl来显示您的数据。如果您使用CS默认,则可以从.VB代码中获取后端数据并将其显示在用户控件中。此外,您可以使用Ajax获取数据并使用HTML显示这些数据和事件。 我希望通过这种方式,您可以显示.vb和.cs文件中的所有数据和事件。
答案 1 :(得分:0)
我不知道是否有人还在阅读此书,但是您可以拥有一个使用VB.NET内联代码并带有C#代码的文件。您的文件定义看起来像
<%@ Page Title="Home Page" Language="VB" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
您可以将VB代码放在<script language = "VB" runat = "server"></script>
分隔符内或<% %>
分隔符内同一页的块中,而不用将VB代码放在后面。