【问题标题】:ASP.NET Web Site to Web Application conversion errorASP.NET 网站到 Web 应用程序的转换错误
【发布时间】:2012-10-02 06:42:33
【问题描述】:

我们有一个 Visual Studio 网站项目。 我们需要一个 .VBPROJ,所以我不得不将我们的网站项目转换为一个 Web 应用程序项目。 我遵循了几个演练,为转换做的一切都很好:

  • 创建新的 webapp 项目
  • 添加参考文献
  • 复制文件(来自网站 到 webapp 文件夹)
  • 将它们包含在项目中
  • 点击“转换为网络应用”。

毕竟,我得到三个相同的编译错误,与 .ASPX 页面相关的 javascript。

<%@ Page Language="VB" AutoEventWireup="false" MasterPageFile ="~/GAR.master" Inherits="GARWA._Default" Codebehind="Default.aspx.vb" %>

'TableWeekID' is not declared. It may be inaccessible due to its protection level.

<script type="text/javascript" language="javascript"> 
//Very important variable! 
var TableWeekTag = '<%=TableWeekID%>'
var DivYearSmallTableTag = '<%=DivYearSmallTable%>' 
var TableNameTag = '<%=TableNameID%>'

这里有什么问题?

谢谢

【问题讨论】:

  • 我没有看到任何 JavaScript...
  • 我不认为错误直接来自 javascript 行,因为相同的代码在网站类型项目中 100% 工作。这更多是因为转换和 行。但这里是 Javascript 相关的
  • 你如何在后面的代码中声明变量TableWeekID
  • 不是,它是一个 ASP.NET 标签,var TableWeekTag = ''。这个确切的代码在项目的网站类型中工作 A-1,但在这个新的 Web 应用程序项目中没有。

标签: asp.net vb.net visual-studio-2010 web-applications web-site-project


【解决方案1】:

你可以这样做。

使用 Hiddenfield 控件并将服务器变量值存储在其中。
每个服务器变量都有一个隐藏字段。
并将值放入 javascript 函数 document.getElementById()

使用下面的内容首先填充服务器端输入控件的数据值。

ASPX SERVERSIDE CODE

svrTableWeek.Value = TableWeekID
svrDivYear.Value = DivYearSmallTable
svrTableName.Value = TableNameID

另外,如果您选择 SERVERSIDE 输入,那么您的 ASP 页面中需要以下 HTML

USING ASP SERVER CONTROLS FOR HIDDEN VALUES

<asp:HiddenField ID="svrTableWeek" runat="server" /> 
<asp:HiddenField ID="svrDivYear" runat="server" /> 
<asp:HiddenField ID="svrTableName" runat="server" /> 

如果您更喜欢 CLIENTSIDE 输入,请使用下面的代码,而不是上面的 ALL

USING HTML (clientside) CONTROLS FOR HIDDEN VALUES

<input type="hidden" id="svrTableWeek" name="svrTableWeek" value="<%=TableWeekID%>" />
<input type="hidden" id="svrDivYear" name="svrDivYear" value="<%=DivYearSmallTable%>" />
<input type="hidden" id="svrTableName" name="svrTableName" value="<%=TableNameID%>" />

最后不管你选择以上两种方法中的哪一种, 现在您准备好在客户端 javascript 中重用这些值了

CLIENT SIDE SCRIPT ROUTINES

<script type="text/javascript" language="javascript"> 
//Very important variable! 
var sTableWeek = document.getElementById('svrTableWeek').value;
var sDivYear = document.getElementById('svrDivYear').value;
var sTableName = document.getElementById('svrTableName').value;

我知道这似乎有点啰嗦,但它应该可以正常工作。

【讨论】:

    【解决方案2】:

    尝试将所有 "~/GAR 全局替换为 "GAR 。我刚刚将一个网站转换为一个 Web 应用程序,出现了类似的奇怪错误,所有这些都是因为对母版页文件的虚拟引用不再正确。我的第一个指标是在代码隐藏文件中没有看到的 DIV ID。

    【讨论】:

      猜你喜欢
      • 2010-10-18
      • 2015-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-10
      • 2015-10-26
      • 2014-04-25
      相关资源
      最近更新 更多